Freigeben über


IoRegisterShutdownNotification-Funktion (wdm.h)

Der IoRegisterShutdownNotification Routine registriert den Treiber, um einen IRP_MJ_SHUTDOWN IRP zu erhalten, wenn das System heruntergefahren wird.

Syntax

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Parameter

[in] DeviceObject

Zeigen Sie 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 STATUS_SUCCESS bei Erfolg oder den entsprechenden NTSTATUS-Fehlercode bei Fehlern zurück.

Bemerkungen

Die IoRegisterShutdownNotification Routine registriert den Treiber, um ein IRP_MJ_SHUTDOWN IRP für das angegebene Gerät zu empfangen, wenn das System heruntergefahren wird. Der Treiber erhält einen solchen IRP für jedes Gerät, für das er registriert wird, um Benachrichtigungen zu erhalten. Treiber verarbeiten IRP_MJ_SHUTDOWN IRPs innerhalb ihrer DispatchShutdown- Routinen.

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

Es sollte nur ein Treiber in einem Gerätestapel registriert werden, um Benachrichtigungen zum Herunterfahren zu erhalten.

Das System sendet dem Treiber die IRP_MJ_SHUTDOWN Anforderung, bevor er die Dateisysteme löscht. Einige Treiber, z. B. Treiber für Massenspeichergeräte, können eine Benachrichtigung zum Herunterfahren erfordern, nachdem das System die Dateisysteme gelebt 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 Fahrerschreiber 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 werden.

Ein PnP-Treiber registriert möglicherweise eine Herunterfahren-Routine, um bestimmte Aufgaben auszuführen, bevor das System heruntergefahren wird, z. B. das Sperren von Code.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 2000 und höheren Versionen von Windows. In Microsoft Windows 98/Me nicht verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Siehe auch

DispatchShutdown-

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification