Fonction IoRegisterShutdownNotification (wdm.h)
La routine IoRegisterShutdownNotification inscrit le pilote pour recevoir un IRP IRP_MJ_SHUTDOWN lorsque le système est arrêté.
Syntaxe
NTSTATUS IoRegisterShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
Paramètres
[in] DeviceObject
Pointeur vers l’objet de périphérique de l’appareil pour lequel le pilote demande une notification d’arrêt. Le système transmet ce pointeur à la routine DispatchShutdown du pilote.
Valeur retournée
IoRegisterShutdownNotification retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur NTSTATUS approprié en cas d’échec.
Remarques
La routine IoRegisterShutdownNotification inscrit 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 IRP dans leurs routines DispatchShutdown .
Si le pilote cesse d’exiger une notification d’arrêt pour l’appareil, utilisez IoUnregisterShutdownNotification pour supprimer le pilote de la file d’attente des notifications d’arrêt.
Un seul pilote dans une pile de périphériques doit s’inscrire pour recevoir une notification d’arrêt.
Le système envoie au pilote la requête IRP_MJ_SHUTDOWN avant de vider les systèmes de fichiers. Certains pilotes, tels que les pilotes des périphériques de stockage de masse, peuvent nécessiter une notification d’arrêt après que le système a vidé les systèmes de fichiers. Pour recevoir une notification d’arrêt pour un appareil après le vidage des systèmes de fichiers, utilisez plutôt la routine IoRegisterLastChanceShutdownNotification .
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.
Un enregistreur de pilotes ne peut faire aucune hypothèse sur l’ordre dans lequel la routine DispatchShutdown du pilote sera appelée par rapport à d’autres routines de ce type ou à d’autres activités d’arrêt.
Un pilote PnP peut inscrire une routine d’arrêt pour effectuer certaines tâches avant le démarrage de l’arrêt du système, telles que le verrouillage du code.
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 (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |