Akku-Miniklasse-Treiber: DriverEntry-Routine
Die DriverEntry-Routine initialisiert den Miniklassentreiber.
Treiberspezifische Einstiegspunkte
Die DriverEntry-Routine des Miniklassentreibers richtet die folgenden treiberspezifischen Einstiegspunkte ein:
- Die Entladeroutine in DriverObject-DriverUnload>
- Die AddDevice-Routine des Treibers in DriverObject-DriverExtension-AddDevice >>
- Die DRIVER_DISPATCH Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_POWER]
- Die DRIVER_DISPATCH-Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_PNP]
- Die DRIVER_DISPATCH-Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_CREATE]
- Die DRIVER_DISPATCH Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_CLOSE]
- Die DRIVER_DISPATCH Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_DEVICE_CONTROL]
- Die DRIVER_DISPATCH Rückruffunktion in DriverObject-MajorFunction>[IRP_MJ_SYSTEM_CONTROL].
Im Folgenden finden Sie einen Beispielcode, der diese Einstiegspunkte für einen hypothetischen NewBatt-Miniklassentreiber initialisiert:
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;
Da akkuspezifische Zustandsinformationen nicht bekannt sind, bis der PnP-Manager die AddDevice-Routine des Miniklassentreibers aufruft, initialisiert die DriverEntry-Routine keinen solchen Zustand. Die gerätespezifische Initialisierung wird in der AddDevice-Routine ausgeführt.
Zusätzliche routinespezifische Anforderungen
Weitere Informationen zu routinespezifischen Anforderungen finden Sie in den folgenden Themen: