Compartir a través de


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 de DispatchShutdown del controlador.

Valor devuelto

ioRegisterShutdownNotification devuelve STATUS_SUCCESS correcto o el código de error NTSTATUS adecuado en caso de error.

Observaciones

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 de 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 una 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ía 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 de 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 realizar transiciones a ningún otro estado de energía.

Un escritor de controladores no puede hacer suposiciones sobre el orden en el que se llamará a la rutina de 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 bloquear el código.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows 2000 y versiones posteriores de Windows. No está disponible en Microsoft Windows 98/Me.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Consulte también

DispatchShutdown

ioRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification