编写 DriverEntry 例程

每个驱动程序必须具有 DriverEntry 例程,用于初始化驱动程序范围的数据结构和资源。 I/O 管理器在加载驱动程序时调用 DriverEntry 例程。

在支持 即插即用 (PnP) 的驱动程序中,与所有驱动程序一样,DriverEntry 例程负责驱动程序初始化,而 AddDevice 例程 (,并且可能由处理 PnP IRP_MN_START_DEVICE 请求的调度例程) 负责设备初始化。 驱动程序初始化包括导出驱动程序的其他入口点、初始化驱动程序使用的某些对象以及设置各种每个驱动程序的系统资源。 (非 PnP 驱动程序的要求明显不同,如适用于 Microsoft Windows NT 4.0 及更早版本的驱动程序开发工具包 [DDK] 中所述)

DriverEntry 例程在 IRQL = PASSIVE_LEVEL 的系统线程上下文中调用。

DriverEntry 例程可以分页,并且应位于 INIT 段中,因此将被丢弃。 使用 alloc_text 杂注指令,如随 Windows 驱动程序工具包 (WDK) 提供的示例驱动程序所示。

本节包含下列主题:

DriverEntry 的必要责任

DriverEntry 的可选责任

DriverEntry 返回值