Partager via


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 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 de retour

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é lors de l’arrêt du système. Le pilote reçoit un de ces IRP pour chaque appareil pour lequel il s’inscrit pour recevoir une notification. Les pilotes gèrent IRP_MJ_SHUTDOWN irPs au sein de leurs routines DispatchShutdown.

Si le pilote cesse de nécessiter une notification d’arrêt pour l’appareil, utilisez IoUnregisterShutdownNotification pour supprimer le pilote de la file d’attente de notification d’arrêt.

Un seul pilote dans une pile d’appareils doit s’inscrire pour recevoir une notification d’arrêt.

Le système envoie le pilote à la demande IRP_MJ_SHUTDOWN avant de vider les systèmes de fichiers. Certains pilotes, tels que les pilotes pour les 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 une fois les systèmes de fichiers vidés, utilisez plutôt la routine IoRegisterLastChanceShutdownNotification.

La routine de dispatchShutdown inscrite est appelée avant que le gestionnaire d’alimentation envoie une demande de IRP_MN_SET_POWER pour PowerSystemShutdown. La routine DispatchShutdown n’est pas appelée pour les transitions vers d’autres états de puissance.

Un enregistreur de pilotes ne peut faire aucune hypothèse sur l’ordre dans lequel le DispatchShutdown routine sera appelé par rapport à d’autres routines 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, comme le verrouillage du code.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 2000 et versions ultérieures de Windows. Non disponible dans Microsoft Windows 98/Me.
plateforme cible Universel
d’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)

Voir aussi

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification