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)

Confira também

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification