Fonction IoRegisterLastChanceShutdownNotification (wdm.h)
La routine IoRegisterLastChanceShutdownNotification enregistre un pilote pour recevoir un IRP IRP_MJ_SHUTDOWN lorsque le système est arrêté, une fois que tous les systèmes de fichiers ont été vidés.
Syntaxe
NTSTATUS IoRegisterLastChanceShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
Paramètres
[in] DeviceObject
Pointeur vers l’objet d’appareil de l’appareil pour lequel le pilote demande la notification d’arrêt. Le système transmet ce pointeur à la routine DispatchShutdown du pilote.
Valeur retournée
IoRegisterLastChanceShutdownNotification retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur NTSTATUS approprié en cas d’échec.
Remarques
La routine IoRegisterLastChanceShutdownNotification enregistre le pilote pour recevoir un IRP IRP_MJ_SHUTDOWN pour l’appareil spécifié lorsque le système s’arrête. Le pilote reçoit un IRP de ce type pour chaque appareil pour lequel il s’inscrit pour recevoir une notification. Les pilotes gèrent IRP_MJ_SHUTDOWN IRPs dans leurs routines DispatchShutdown .
Pour tout appareil inscrit auprès de cette routine, le système envoie le IRP_MJ_SHUTDOWN IRP après que tous les systèmes de fichiers ont été vidés. Un seul pilote dans une pile d’appareils doit s’inscrire pour recevoir une notification d’arrêt, en appelant IoRegisterShutdownNotification ou IoRegisterLastChanceShutdownNotification.
Si le pilote cesse d’exiger une notification d’arrêt pour cet appareil, utilisez IoUnregisterShutdownNotification pour supprimer le pilote de la file d’attente de notification d’arrêt.
Un pilote qui appelle IoRegisterLastChanceShutdownNotification doit respecter les restrictions suivantes dans sa routine DispatchShutdown :
- La routine DispatchShutdown ne doit pas appeler des routines paginables.
- La routine DispatchShutdown ne doit pas accéder à la mémoire paginable.
- La routine DispatchShutdown ne doit pas effectuer d’opérations d’E/S de fichier.
La routine DispatchShutdown inscrite est appelée avant que le gestionnaire d’alimentation envoie une demande IRP_MN_SET_POWER pour PowerSystemShutdown. La routine DispatchShutdown n’est pas appelée pour les transitions vers d’autres états d’alimentation.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows 2000 et versions ultérieures de Windows. Non disponible dans Microsoft Windows 98/Me. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm) |