배터리 미니클래스 드라이버: DriverEntry 루틴
DriverEntry 루틴은 미니클래스 드라이버를 초기화합니다.
드라이버별 진입점
미니클래스 드라이버의 DriverEntry 루틴은 다음 드라이버별 진입점을 설정합니다.
- DriverObject-DriverUnload>의 언로드 루틴
- 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 Manager가 미니클래스 드라이버의 AddDevice 루틴을 호출할 때까지 배터리 관련 상태 정보를 알 수 없으므로 DriverEntry 루틴은 이러한 상태를 초기화하지 않습니다. 디바이스별 초기화는 AddDevice 루틴에서 수행됩니다.
추가 루틴별 요구 사항
일상적인 요구 사항에 대한 자세한 내용은 다음 topics 참조하세요.