Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La routine IoReportTargetDeviceChange avertit le gestionnaire PnP qu’un événement personnalisé s’est produit sur un appareil.
Syntaxe
NTSTATUS IoReportTargetDeviceChange(
[in] PDEVICE_OBJECT PhysicalDeviceObject,
[in] PVOID NotificationStructure
);
Paramètres
[in] PhysicalDeviceObject
Pointeur vers l’objet PDO de l’appareil signalé.
[in] NotificationStructure
Pointeur vers une structure TARGET_DEVICE_CUSTOM_NOTIFICATION fournie par l’appelant décrivant l’événement personnalisé. Le gestionnaire PnP envoie cette structure aux pilotes inscrits pour la notification de l’événement.
NotificationStructure. FileObject doit être NULL. NotificationStructure.'événement doit contenir le GUID personnalisé de l’événement. Les autres champs de l'NotificationStructure doivent être renseignés selon les besoins de l’événement personnalisé.
Le gestionnaire PnP remplit la notificationstructure.champ FileObject lorsqu’il envoie des notifications aux inscrits.
Valeur de retour
IoReportTargetDeviceChange retourne STATUS_SUCCESS ou un état d’erreur approprié. Les valeurs d’état d’erreur possibles sont les suivantes.
Retourner le code | Description |
---|---|
|
L’appelant a spécifié un événement PnP système, tel que GUID_TARGET_DEVICE_QUERY_REMOVE. Cette routine concerne uniquement les événements personnalisés. |
Remarques
Après IoReportTargetDeviceChange avertit le gestionnaire PnP qu’un événement personnalisé s’est produit sur un appareil, le gestionnaire PnP envoie une notification de l’événement aux pilotes inscrits pour la notification sur l’appareil. N’utilisez pas cette routine pour signaler les événements PnP système, tels que GUID_TARGET_DEVICE_REMOVE_COMPLETE.
Pilote qui définit un événement d’appareil personnalisé appelle IoReportTargetDeviceChange pour informer le gestionnaire PnP que l’événement personnalisé s’est produit. Une notification personnalisée peut être utilisée pour les événements tels qu’une modification d’étiquette de volume.
Un pilote doit appeler la forme asynchrone de cette routine, IoReportTargetDeviceChangeAsynchronous, au lieu de cette routine, pour empêcher les blocages.
Certains composants en mode noyau peuvent appeler cette routine synchrone. Par exemple, un système de fichiers peut appeler IoReportTargetDeviceChange pour signaler un événement personnalisé « get off the volume » lorsqu’un composant tente d’ouvrir le volume pour un accès exclusif. Les clients qui s’inscrivent pour la notification sur les volumes de système de fichiers sont prudents de ne pas demander d’ouverture exclusive dans une routine de rappel de notification PnP.
La structure de notification personnalisée contient un événement défini par le pilote avec son propre GUID. Les enregistreurs de pilotes peuvent générer des GUID avec Uuidgen.exe ou Guidgen.exe (qui sont inclus dans le Kit de développement logiciel (SDK) Microsoft Windows).
Les appelants de IoReportTargetDeviceChange doivent s’exécuter à IRQL = PASSIVE_LEVEL dans le contexte d’un thread système. Pour signaler une modification d’appareil cible à partir de l'> PASSIVE_LEVEL IRQL, appelez IoReportTargetDeviceChangeAsynchronous.
IoReportTargetDeviceChange n’est pas pris en charge sur Windows 98/Me ; elle retourne STATUS_NOT_IMPLEMENTED.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
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 (voir la section Remarques) |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |