Funzione IoRegisterLastChanceShutdownNotification (wdm.h)

La routine IoRegisterLastChanceShutdownNotification registra un driver per ricevere un IRP_MJ_SHUTDOWN IRP quando il sistema viene arrestato, dopo che tutti i file system sono stati scaricati.

Sintassi

NTSTATUS IoRegisterLastChanceShutdownNotification(
  [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 DispatchShutdown del driver.

Valore restituito

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

Commenti

La routine IoRegisterLastChanceShutdownNotification registra il driver per ricevere un IRP_MJ_SHUTDOWN IRP per il dispositivo specificato quando il sistema viene arrestato. Il driver riceve un provider di identità di questo tipo 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 .

Per qualsiasi dispositivo registrato con questa routine, il sistema invia il IRP_MJ_SHUTDOWN IRP dopo che tutti i file system vengono scaricati. Solo un driver in uno stack di dispositivi deve registrarsi per ricevere la notifica di arresto chiamando IoRegisterShutdownNotification o IoRegisterLastChanceShutdownNotification.

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.

Un driver che chiama IoRegisterLastChanceShutdownNotification deve soddisfare le restrizioni seguenti nella routine DispatchShutdown :

  • La routine DispatchShutdown non deve chiamare routine di paging.
  • La routine DispatchShutdown non deve accedere alla memoria di paging.
  • La routine DispatchShutdown non deve eseguire operazioni di I/O sui file.
La maggior parte dei driver che richiedono la notifica di arresto deve chiamare la routine IoRegisterShutdownNotification , che non impone queste limitazioni alla routine DispatchShutdown e che fa sì che la routine DispatchShutdown venga chiamata prima che i file system vengano scaricati. Solo i driver che devono eseguire una pulizia dopo lo scaricamento dei file system, ad esempio un driver per un dispositivo di archiviazione di massa, devono usare 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.

Requisiti

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

Vedi anche

DispatchShutdown

IoRegisterShutdownNotification

IoUnregisterShutdownNotification