Função IoRegisterShutdownNotification (wdm.h)
A rotina IoRegisterShutdownNotification registra o driver para receber um IRP IRP_MJ_SHUTDOWN quando o sistema é desligado.
Sintaxe
NTSTATUS IoRegisterShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
Parâmetros
[in] DeviceObject
Ponteiro para o objeto de dispositivo do dispositivo para o qual o driver solicita notificação de desligamento. O sistema passa esse ponteiro para a rotina DispatchShutdown do driver.
Retornar valor
IoRegisterShutdownNotification retorna STATUS_SUCCESS com êxito ou o código de erro NTSTATUS apropriado em caso de falha.
Comentários
A rotina IoRegisterShutdownNotification registra o driver para receber um IRP IRP_MJ_SHUTDOWN para o dispositivo especificado quando o sistema é desligado. O driver recebe um desses IRP para cada dispositivo para o qual ele se registra para receber notificação. Os drivers lidam com IRP_MJ_SHUTDOWN IRPs dentro de suas rotinas DispatchShutdown .
Se o driver deixar de exigir notificação de desligamento para o dispositivo, use IoUnregisterShutdownNotification para remover o driver da fila de notificação de desligamento.
Apenas um driver em uma pilha de dispositivos deve se registrar para receber notificação de desligamento.
O sistema envia ao driver a solicitação IRP_MJ_SHUTDOWN antes de liberar os sistemas de arquivos. Alguns drivers, como drivers para dispositivos de armazenamento em massa, podem exigir notificação de desligamento depois que o sistema libera os sistemas de arquivos. Para receber uma notificação de desligamento para um dispositivo depois que os sistemas de arquivos forem liberados, use a rotina IoRegisterLastChanceShutdownNotification .
A rotina dispatchShutdown registrada é chamada antes que o power manager envie uma solicitação de IRP_MN_SET_POWER para PowerSystemShutdown. A rotina DispatchShutdown não é chamada para transições para outros estados de energia.
Um gravador de driver não pode fazer nenhuma suposição sobre a ordem na qual a rotina DispatchShutdown do driver será chamada em relação a outras rotinas desse tipo ou a outras atividades de desligamento.
Um driver PnP pode registrar uma rotina de desligamento para executar determinadas tarefas antes do início do desligamento do sistema, como bloquear o código.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows 2000 e versões posteriores do Windows. Não disponível no Microsoft Windows 98/Me. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |