IoRegisterShutdownNotification 함수(wdm.h)

IoRegisterShutdownNotification 루틴은 시스템이 종료될 때 IRP_MJ_SHUTDOWN IRP를 수신하도록 드라이버를 등록합니다.

구문

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

매개 변수

[in] DeviceObject

드라이버가 종료 알림을 요청하는 디바이스의 디바이스 개체에 대한 포인터입니다. 시스템은 이 포인터를 드라이버의 DispatchShutdown 루틴에 전달합니다.

반환 값

IoRegisterShutdownNotification 은 성공 시 STATUS_SUCCESS 반환하거나 실패 시 적절한 NTSTATUS 오류 코드를 반환합니다.

설명

IoRegisterShutdownNotification 루틴은 시스템이 종료될 때 지정된 디바이스에 대한 IRP_MJ_SHUTDOWN IRP를 수신하도록 드라이버를 등록합니다. 드라이버는 알림을 받기 위해 등록하는 각 디바이스에 대해 이러한 IRP 하나를 받습니다. 드라이버는 DispatchShutdown 루틴 내에서 IRP_MJ_SHUTDOWN IRP를 처리합니다.

드라이버가 디바이스에 대한 종료 알림 필요를 중단하는 경우 IoUnregisterShutdownNotification 을 사용하여 종료 알림 큐에서 드라이버를 제거합니다.

종료 알림을 받으려면 디바이스 스택의 드라이버 하나만 등록해야 합니다.

시스템은 파일 시스템을 플러시하기 전에 드라이버에 IRP_MJ_SHUTDOWN 요청을 보냅니다. 대용량 스토리지 디바이스용 드라이버와 같은 일부 드라이버는 시스템이 파일 시스템을 플러시한 후 종료 알림을 요구할 수 있습니다. 파일 시스템이 플러시된 후 디바이스에 대한 종료 알림을 받으려면 대신 IoRegisterLastChanceShutdownNotification 루틴을 사용합니다.

Power Manager가 PowerSystemShutdown에 대한 IRP_MN_SET_POWER 요청을 보내기 전에 등록된 DispatchShutdown 루틴이 호출됩니다. DispatchShutdown 루틴은 다른 전원 상태로 전환하기 위해 호출되지 않습니다.

드라이버 작성기는 드라이버의 DispatchShutdown 루틴이 다른 루틴 또는 다른 종료 활동과 관련하여 호출되는 순서에 대해 가정할 수 없습니다.

PnP 드라이버는 시스템 종료가 시작되기 전에 코드 잠금과 같은 특정 작업을 수행하기 위해 종료 루틴을 등록할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 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), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

추가 정보

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification