IoRegisterLastChanceShutdownNotification 함수(wdm.h)
IoRegisterLastChanceShutdownNotification 루틴은 모든 파일 시스템이 플러시된 후 시스템이 종료될 때 IRP_MJ_SHUTDOWN IRP를 수신하도록 드라이버를 등록합니다.
구문
NTSTATUS IoRegisterLastChanceShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
매개 변수
[in] DeviceObject
드라이버가 종료 알림을 요청하는 디바이스의 디바이스 개체에 대한 포인터입니다. 시스템은 이 포인터를 드라이버의 DispatchShutdown 루틴에 전달합니다.
반환 값
IoRegisterLastChanceShutdownNotification 은 성공 시 STATUS_SUCCESS 반환하거나 실패 시 적절한 NTSTATUS 오류 코드를 반환합니다.
설명
IoRegisterLastChanceShutdownNotification 루틴은 시스템이 종료될 때 지정된 디바이스에 대한 IRP_MJ_SHUTDOWN IRP를 수신하도록 드라이버를 등록합니다. 드라이버는 알림을 받기 위해 등록하는 각 디바이스에 대해 이러한 IRP 하나를 받습니다. 드라이버는 DispatchShutdown 루틴 내에서 IRP_MJ_SHUTDOWN IRP를 처리합니다.
이 루틴에 등록된 모든 디바이스의 경우 시스템은 모든 파일 시스템이 플러시된 후 IRP_MJ_SHUTDOWN IRP를 보냅니다. IoRegisterShutdownNotification 또는 IoRegisterLastChanceShutdownNotification을 호출하여 디바이스 스택의 드라이버 하나만 등록하여 종료 알림을 수신해야 합니다.
드라이버에서 해당 디바이스에 대한 종료 알림이 필요하지 않은 경우 IoUnregisterShutdownNotification 을 사용하여 종료 알림 큐에서 드라이버를 제거합니다.
IoRegisterLastChanceShutdownNotification을 호출하는 드라이버는 DispatchShutdown 루틴에서 다음 제한을 충족해야 합니다.
- DispatchShutdown 루틴은 페이지 가능한 루틴을 호출해서는 안 됩니다.
- DispatchShutdown 루틴은 페이지가 지정 가능한 메모리에 액세스해서는 안됩니다.
- DispatchShutdown 루틴은 파일 I/O 작업을 수행해서는 안 됩니다.
Power Manager가 PowerSystemShutdown에 대한 IRP_MN_SET_POWER 요청을 보내기 전에 등록된 DispatchShutdown 루틴이 호출됩니다. DispatchShutdown 루틴은 다른 전원 상태로 전환하기 위해 호출되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다. Microsoft Windows 98/Me에서는 사용할 수 없습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |