Compartilhar via


Função IoRegisterLastChanceShutdownNotification (wdm.h)

A rotina IoRegisterLastChanceShutdownNotification registra um driver para receber uma IRP_MJ_SHUTDOWN IRP quando o sistema é desligado, depois que todos os sistemas de arquivos são liberados.

Sintaxe

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

IoRegisterLastChanceShutdownNotification retorna STATUS_SUCCESS com êxito ou o código de erro NTSTATUS apropriado em caso de falha.

Comentários

A rotina IoRegisterLastChanceShutdownNotification 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 .

Para qualquer dispositivo registrado com essa rotina, o sistema envia a IRP_MJ_SHUTDOWN IRP depois que todos os sistemas de arquivos são liberados. Apenas um driver em uma pilha de dispositivos deve se registrar para receber notificação de desligamento, chamando IoRegisterShutdownNotification ou IoRegisterLastChanceShutdownNotification.

Se o driver deixar de exigir notificação de desligamento para esse dispositivo, use IoUnregisterShutdownNotification para remover o driver da fila de notificação de desligamento.

Um driver que chama IoRegisterLastChanceShutdownNotification deve atender às seguintes restrições em sua rotina DispatchShutdown :

  • A rotina DispatchShutdown não deve chamar nenhuma rotina paginável.
  • A rotina DispatchShutdown não deve acessar a memória paginável.
  • A rotina DispatchShutdown não deve executar nenhuma operação de E/S de arquivo.
A maioria dos drivers que exigem notificação de desligamento deve chamar a rotina IoRegisterShutdownNotification , que não impõe essas limitações na rotina DispatchShutdown e faz com que a rotina DispatchShutdown seja chamada antes que os sistemas de arquivos sejam liberados. Somente os drivers que devem fazer alguma limpeza depois que os sistemas de arquivos são liberados, como um driver para um dispositivo de armazenamento em massa, devem usar 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.

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

Confira também

DispatchShutdown

IoRegisterShutdownNotification

IoUnregisterShutdownNotification