Freigeben über


IoRegisterShutdownNotification-Funktion (wdm.h)

Die IoRegisterShutdownNotification-Routine registriert den Treiber, um eine IRP_MJ_SHUTDOWN IRP zu erhalten, wenn das System heruntergefahren wird.

Syntax

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Parameter

[in] DeviceObject

Zeiger auf das Geräteobjekt des Geräts, für das der Treiber eine Benachrichtigung zum Herunterfahren anfordert. Das System übergibt diesen Zeiger an die DispatchShutdown-Routine des Fahrers.

Rückgabewert

IoRegisterShutdownNotification gibt bei Erfolg STATUS_SUCCESS oder den entsprechenden NTSTATUS-Fehlercode bei Einem Fehler zurück.

Hinweise

Die IoRegisterShutdownNotification-Routine registriert den Treiber, um eine IRP_MJ_SHUTDOWN IRP für das angegebene Gerät zu erhalten, wenn das System heruntergefahren wird. Der Treiber empfängt eine solche IRP für jedes Gerät, für das er sich registriert, um eine Benachrichtigung zu erhalten. Treiber verarbeiten IRP_MJ_SHUTDOWN IRPs innerhalb ihrer DispatchShutdown-Routinen .

Wenn der Treiber keine Benachrichtigung zum Herunterfahren für das Gerät mehr erfordert, verwenden Sie IoUnregisterShutdownNotification , um den Treiber aus der Warteschlange für Benachrichtigungen zum Herunterfahren zu entfernen.

Nur ein Treiber in einem Gerätestapel sollte registriert werden, um eine Benachrichtigung zum Herunterfahren zu erhalten.

Das System sendet dem Treiber die IRP_MJ_SHUTDOWN Anforderung, bevor die Dateisysteme geleert werden. Einige Treiber, z. B. Treiber für Massenspeichergeräte, können eine Benachrichtigung zum Herunterfahren erfordern, nachdem das System die Dateisysteme geleert hat. Verwenden Sie stattdessen die IoRegisterLastChanceShutdownNotification-Routine , um eine Benachrichtigung zum Herunterfahren für ein Gerät zu erhalten, nachdem die Dateisysteme geleert wurden.

Die registrierte DispatchShutdown-Routine wird aufgerufen, bevor der Power Manager eine IRP_MN_SET_POWER Anforderung für PowerSystemShutdown sendet. Die DispatchShutdown-Routine wird nicht für Übergänge zu anderen Machtzuständen aufgerufen.

Ein Treiberschreiber kann keine Annahmen über die Reihenfolge treffen, in der die DispatchShutdown-Routine des Fahrers in Bezug auf andere solche Routinen oder andere Herunterfahren-Aktivitäten aufgerufen wird.

Ein PnP-Treiber kann eine Herunterfahrensroutine registrieren, um bestimmte Aufgaben auszuführen, bevor das System heruntergefahren wird, z. B. das Sperren von Code.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen von Windows. Nicht verfügbar in Microsoft Windows 98/Me.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Weitere Informationen

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification