Función IoRegisterLastChanceShutdownNotification (wdm.h)

La rutina IoRegisterLastChanceShutdownNotification registra un controlador para recibir un IRP de IRP_MJ_SHUTDOWN cuando se apaga el sistema, después de que se hayan vaciado todos los sistemas de archivos.

Sintaxis

NTSTATUS IoRegisterLastChanceShutdownNotification(
  [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

IoRegisterLastChanceShutdownNotification devuelve STATUS_SUCCESS correctamente o el código de error NTSTATUS adecuado en caso de error.

Comentarios

La rutina IoRegisterLastChanceShutdownNotification 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 .

Para cualquier dispositivo registrado con esta rutina, el sistema envía el IRP_MJ_SHUTDOWN IRP después de que se vacían todos los sistemas de archivos. Solo un controlador de una pila de dispositivos debe registrarse para recibir una notificación de apagado mediante una llamada a IoRegisterShutdownNotification o IoRegisterLastChanceShutdownNotification.

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

Un controlador que llama a IoRegisterLastChanceShutdownNotification debe satisfacer las siguientes restricciones en su rutina DispatchShutdown :

  • La rutina DispatchShutdown no debe llamar a ninguna rutina paginable.
  • La rutina DispatchShutdown no debe tener acceso a la memoria paginable.
  • La rutina DispatchShutdown no debe realizar ninguna operación de E/S de archivos.
La mayoría de los controladores que requieren notificación de apagado deben llamar a la rutina IoRegisterShutdownNotification , que no impone estas limitaciones en la rutina DispatchShutdown , y lo que hace que se llame a la rutina DispatchShutdown antes de que se vacían los sistemas de archivos. Solo los controladores que deben realizar alguna limpieza después de vaciar los sistemas de archivos, como un controlador para un dispositivo de almacenamiento masivo, deben usar IoRegisterLastChanceShutdownNotification.

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.

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 HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

DispatchShutdown

IoRegisterShutdownNotification

IoUnregisterShutdownNotification