电池微型类驱动程序:DriverEntry 例程
DriverEntry 例程会初始化微型类驱动程序。
特定于驱动程序的入口点
微型类驱动程序的 DriverEntry 例程会设置以下特定于驱动程序的入口点:
- DriverObject->DriverUnload 中的 Unload 例程
- DriverObject->DriverExtension->AddDevice 中的驱动程序 AddDevice 例程
- DriverObject->MajorFunction[IRP_MJ_POWER] 中的 DRIVER_DISPATCH 回调函数
- DriverObject->MajorFunction[IRP_MJ_PNP] 中的 DRIVER_DISPATCH 回调函数
- DriverObject->MajorFunction[IRP_MJ_CREATE] 中的 DRIVER_DISPATCH 回调函数
- DriverObject->MajorFunction[IRP_MJ_CLOSE] 中的 DRIVER_DISPATCH 回调函数
- DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] 中的 DRIVER_DISPATCH 回调函数
- DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] 中的 DRIVER_DISPATCH 回调函数。
下面是一个示例代码,用于初始化假设的 NewBatt 微型类驱动程序的这些入口点:
DriverObject->DriverUnload = NewBattUnload;
DriverObject->DriverExtension->AddDevice = NewBattAddDevice;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = NewBattDispatchDeviceControl;
DriverObject->MajorFunction[IRP_MJ_CREATE] = NewBattDispatchCreate;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = NewBattDispatchClose;
DriverObject->MajorFunction[IRP_MJ_PNP] = NewBattDispatchPnp;
DriverObject->MajorFunction[IRP_MJ_POWER] = NewBattDispatchPower;
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = NewBattSystemControl;
由于在 PnP 管理器调用微型类驱动程序的 AddDevice 例程之前,特定于电池的状态信息未知,因此 DriverEntry 例程不会初始化任何此类状态。 在 AddDevice 例程中执行特定于设备的初始化。
其他特定于例程的要求
有关例程特定要求的详细信息,请参阅以下主题: