Skip to content

Resume retained driver services issued during DriverEntry #81

Description

@stakach

Problem

A hosted driver can issue a blocking ZwCreateFile or another retained kernel service from DriverEntry. The startup component pump receives the request and parks its Reply, but then blocks in pump_recv waiting for DriverEntry completion. The retained work is redriven only by the later executive event loop, which cannot start until DriverEntry returns. The first native Mup provider fixture exposed this exact deadlock at ZwCreateFile(\Device\Mup).

Acceptance

  • Model DriverEntry as a resumable startup continuation with its exact physical lane, Reply, and partial launch ownership retained.
  • Redrive admitted kernel-service work while startup is suspended, without replaying DriverEntry or inventing a terminal status.
  • Resume the same startup lane after the service Reply is acknowledged; only then read the actual DriverEntry verdict and publish the driver.
  • Test nested/reentrant service dispatch, cancellation/stop, and uncertain Reply effects in focused crates before native integration.
  • Demonstrate a native driver ZwCreateFile inside DriverEntry reaching a real provider and returning, under a bounded boot; do not use a synthetic success or special-case image/device names.

This is a general NT driver-startup requirement exposed while working on #71 and #79. The current Mup provider integration fixture registers from a genuine PsCreateSystemThread worker to exercise the later live path while this startup behavior is implemented. Strict win32k admission #17 separately prevents the current boot from reaching the executive event loop.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions