Función IoRegisterShutdownNotification (wdm.h)

La rutina IoRegisterShutdownNotification registra el controlador para recibir un IRP de IRP_MJ_SHUTDOWN cuando se apaga el sistema.

Sintaxis

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Parámetros

[in] DeviceObject

Puntero al objeto de dispositivo del dispositivo para el que el controlador solicita la notificación de apagado. El sistema pasa este puntero a la rutina DispatchShutdown del controlador.

Valor devuelto

IoRegisterShutdownNotification devuelve STATUS_SUCCESS si se ejecuta correctamente o el código de error NTSTATUS adecuado en caso de error.

Comentarios

La rutina IoRegisterShutdownNotification registra el controlador para recibir un IRP de IRP_MJ_SHUTDOWN para el dispositivo especificado cuando el sistema se apaga. El controlador recibe uno de estos IRP para cada dispositivo para el que se registra para recibir notificaciones. Los controladores controlan IRP_MJ_SHUTDOWN IRP dentro de sus rutinas DispatchShutdown .

Si el controlador deja de requerir la notificación de apagado para el dispositivo, use IoUnregisterShutdownNotification para quitar el controlador de la cola de notificaciones de apagado.

Solo un controlador de una pila de dispositivos debe registrarse para recibir la notificación de apagado.

El sistema envía al controlador la solicitud IRP_MJ_SHUTDOWN antes de vaciar los sistemas de archivos. Algunos controladores, como los controladores para dispositivos de almacenamiento masivo, pueden requerir una notificación de apagado después de que el sistema vacíe los sistemas de archivos. Para recibir una notificación de apagado para un dispositivo después de vaciar los sistemas de archivos, use la rutina IoRegisterLastChanceShutdownNotification en su lugar.

Se llama a la rutina DispatchShutdown registrada antes de que el administrador de energía envíe una solicitud de IRP_MN_SET_POWER para PowerSystemShutdown. No se llama a la rutina DispatchShutdown para las transiciones a ningún otro estado de energía.

Un escritor de controladores no puede realizar suposiciones sobre el orden en que se llamará a la rutina DispatchShutdown del controlador en relación con otras rutinas de este tipo o con otras actividades de apagado.

Un controlador PnP puede registrar una rutina de apagado para realizar determinadas tareas antes de que se inicie el apagado del sistema, como el código de bloqueo.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de Windows. No está disponible en Microsoft Windows 98/Me.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Consulte también

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification