Condividi tramite


Funzione IoRegisterShutdownNotification (wdm.h)

La routine IoRegisterShutdownNotification registra il driver per ricevere un IRP_MJ_SHUTDOWN IRP quando il sistema viene arrestato.

Sintassi

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo del dispositivo per il quale il driver richiede la notifica di arresto. Il sistema passa questo puntatore alla routine DispatchShut down del driver.

Valore restituito

IoRegisterShutdownNotification restituisce STATUS_SUCCESS in caso di esito positivo o il codice di errore NTSTATUS appropriato in caso di errore.

Osservazioni

La routine IoRegisterShutdownNotification registra il driver per ricevere un IRP_MJ_SHUTDOWN IRP per il dispositivo specificato quando il sistema viene arrestato. Il driver riceve un tale IRP per ogni dispositivo per cui esegue la registrazione per la ricezione della notifica. I driver gestiscono IRP_MJ_SHUTDOWN IRP all'interno delle routine DispatchShutdown.

Se il driver smette di richiedere la notifica di arresto per il dispositivo, usare IoUnregisterShutdownNotification per rimuovere il driver dalla coda di notifica di arresto.

Per ricevere la notifica di arresto, è necessario registrare un solo driver in uno stack di dispositivi.

Il sistema invia il driver alla richiesta di IRP_MJ_SHUTDOWN prima di scaricare i file system. Alcuni driver, ad esempio i driver per i dispositivi di archiviazione di massa, possono richiedere una notifica di arresto dopo che il sistema scarica i file system. Per ricevere una notifica di arresto per un dispositivo dopo lo scaricamento dei file system, usare invece la routine IoRegisterLastChanceShutdownNotification.

La routine dispatchshutdown registrata viene chiamata prima che il risparmio energia invii una richiesta di IRP_MN_SET_POWER per PowerSystemShutdown. La routine dispatchshutdown non viene chiamata per le transizioni ad altri stati di alimentazione.

Un writer di driver non può fare ipotesi sull'ordine in cui il driver DispatchShutdown routine verrà chiamata in relazione ad altre routine di questo tipo o ad altre attività di arresto.

Un driver PnP potrebbe registrare una routine di arresto per eseguire determinate attività prima dell'avvio dell'arresto del sistema, ad esempio il blocco del codice.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows 2000 e versioni successive di Windows. Non disponibile in Microsoft Windows 98/Me.
piattaforma di destinazione Universale
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
regole di conformità DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Vedere anche

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification