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 do dispositivo para o qual o driver solicita notificação de desligamento. O sistema passa esse ponteiro para a rotina de dispatchShutdown do driver.
Valor de retorno
IoRegisterShutdownNotification retorna STATUS_SUCCESS com êxito ou o código de erro NTSTATUS apropriado sobre falha.
Observações
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 motoristas lidam com IRP_MJ_SHUTDOWN IRPs em suas rotinas de 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 a 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 de um dispositivo após a liberação dos sistemas de arquivos, use a rotina de IoRegisterLastChanceShutdownNotification.
A rotina de DispatchShutdown registrada é chamada antes que o power manager envie uma solicitação IRP_MN_SET_POWER para PowerSystemShutdown. A rotina de DispatchShutdown não é chamada para transições para outros estados de energia.
Um gravador de driver não pode fazer suposições sobre a ordem na qual a rotina de dispatchShutdown do driver será chamada em relação a outras rotinas 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 |
---|---|
de cliente com suporte mínimo | Disponível no Windows 2000 e versões posteriores do Windows. Não disponível no Microsoft Windows 98/Me. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |