IoRegisterLastChanceShutdownNotification-Funktion (wdm.h)
Die IoRegisterLastChanceShutdownNotification-Routine registriert einen Treiber, um eine IRP_MJ_SHUTDOWN IRP zu erhalten, wenn das System heruntergefahren wird, nachdem alle Dateisysteme geleert wurden.
Syntax
NTSTATUS IoRegisterLastChanceShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
Parameter
[in] DeviceObject
Zeiger auf das Geräteobjekt des Geräts, für das der Treiber die Benachrichtigung zum Herunterfahren anfordert. Das System übergibt diesen Zeiger an die DispatchShutdown-Routine des Fahrers.
Rückgabewert
IoRegisterLastChanceShutdownNotification gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden NTSTATUS-Fehlercode bei Einem Fehler zurück.
Hinweise
Die IoRegisterLastChanceShutdownNotification-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 erhält 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 .
Für jedes Gerät, das bei dieser Routine registriert ist, sendet das System die IRP_MJ_SHUTDOWN IRP, nachdem alle Dateisysteme geleert wurden. Nur ein Treiber in einem Gerätestapel sollte registriert werden, um eine Benachrichtigung zum Herunterfahren zu erhalten, indem er entweder IoRegisterShutdownNotification oder IoRegisterLastChanceShutdownNotification aufruft.
Wenn der Treiber keine Benachrichtigung zum Herunterfahren für dieses Gerät mehr erfordert, verwenden Sie IoUnregisterShutdownNotification , um den Treiber aus der Benachrichtigungswarteschlange zum Herunterfahren zu entfernen.
Ein Treiber, der IoRegisterLastChanceShutdownNotification aufruft , muss die folgenden Einschränkungen in seiner DispatchShutdown-Routine erfüllen:
- Die DispatchShutdown-Routine darf keine auslagerungsfähigen Routinen aufrufen.
- Die DispatchShutdown-Routine darf nicht auf ausgelagerten Arbeitsspeicher zugreifen.
- Die DispatchShutdown-Routine darf keine Datei-E/A-Vorgänge ausführen.
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 Energiezuständen aufgerufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 2000 und höheren Versionen von Windows. In Microsoft Windows 98/Me nicht verfügbar. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |