Événements d’appareil (IoEvent.h)
Les applications, y compris les services, peuvent s’inscrire pour recevoir une notification des événements d’appareil. Par exemple, un service de catalogue peut recevoir une notification de montage ou de démonté des volumes afin qu’il puisse ajuster les chemins d’accès aux fichiers sur le volume. Le système avertit une application qu’un événement d’appareil s’est produit en lui envoyant un message WM_DEVICECHANGE . Le système avertit un service qu’un événement d’appareil s’est produit en appelant la fonction de gestionnaire d’événements du service, HandlerEx.
Pour recevoir des notifications d’événements d’appareil, appelez la fonction RegisterDeviceNotification avec une structure DEV_BROADCAST_HANDLE . Veillez à définir le membre dbch_handle sur le handle d’appareil obtenu à partir de la fonction CreateFile . Définissez également le membre dbch_devicetype sur DBT_DEVTYP_HANDLE. La fonction retourne un handle de notification d’appareil. Notez que ce n’est pas la même chose que le handle de volume.
Lorsque votre application reçoit une notification, si le type d’événement est DBT_CUSTOMEVENT, vous avez peut-être reçu l’un des événements d’appareil définis dans IoEvent.h. Pour déterminer si l’un de ces événements s’est produit, procédez comme suit.
- Traitez les données d’événement comme une structure de DEV_BROADCAST_HDR . Vérifiez que le membre dbch_devicetype est défini sur DBT_DEVTYP_HANDLE.
- Si dbch_devicetype est DBT_DEVTYP_HANDLE, les données d’événement sont en fait un pointeur vers une structure DEV_BROADCAST_HANDLE .
- Comparez le membre dbch_eventguid aux GUIDrépertoriés dans le tableau suivant à l’aide de la fonction IsEqualGUID .
-
GUID_IO_CDROM_EXCLUSIVE_LOCK
-
-
bc56c139-7a10-47ee-a294-4c6a38f0149a
-
L’appareil CD-ROM a été verrouillé pour un accès exclusif.
Windows Server 2003 et Windows XP : La prise en charge de cette valeur nécessite IMAPI 2.0. Pour plus d’informations, consultez API De mastering d’images.
-
-
GUID_IO_CDROM_EXCLUSIVE_UNLOCK
-
-
a3b6d27d-5e35-4885-81e5-ee18c00ed779
-
Un périphérique CD-ROM verrouillé pour un accès exclusif a été déverrouillé.
Windows Server 2003 et Windows XP : La prise en charge de cette valeur nécessite IMAPI 2.0. Pour plus d’informations, consultez API De mastering d’images.
-
-
GUID_IO_DEVICE_BECOMING_READY
-
-
d07433f0-a98e-11d2-917a-00a0c9068ff3
-
La spin-up multimédia est en cours.
-
-
GUID_IO_DEVICE_EXTERNAL_REQUEST
-
-
d07433d0-a98e-11d2-917a-00a0c9068ff3
-
Il existe plusieurs causes possibles pour cet événement ; Pour plus d’informations, reportez-vous à la spécification T10 MMC de la commande GET EVENT STATUS NOTIFICATION.
-
-
GUID_IO_MEDIA_ARRIVAL
-
-
d07433c0-a98e-11d2-917a-00a0c9068ff3
-
Un support amovible a été ajouté à l’appareil. Le membre dbch_data est un pointeur vers une structure CLASS_MEDIA_CHANGE_CONTEXT . Le membre NewState fournit status informations. Par exemple, une valeur de MediaUnavailable indique que le média n’est pas disponible (par exemple, en raison d’une session d’enregistrement active).
Windows XP : Le membre dbch_data est une valeur ULONG qui représente le nombre de fois où le média a été modifié depuis le démarrage du système.
-
-
GUID_IO_MEDIA_EJECT_REQUEST
-
-
d07433d1-a98e-11d2-917a-00a0c9068ff3
-
Le lecteur du support amovible a reçu une demande de l’utilisateur d’éjecter l’emplacement ou le média spécifié.
-
-
GUID_IO_MEDIA_REMOVAL
-
-
d07433c1-a98e-11d2-917a-00a0c9068ff3
-
Le support amovible a été supprimé de l’appareil ou n’est pas disponible. Le membre dbch_data est un pointeur vers une structure CLASS_MEDIA_CHANGE_CONTEXT . Le membre NewState fournit status informations. Par exemple, une valeur de MediaUnavailable indique que le média n’est pas disponible (par exemple, en raison d’une session d’enregistrement active).
Windows XP : Le membre dbch_data est une valeur ULONG qui représente le nombre de fois où le média a été modifié depuis le démarrage du système.
-
-
GUID_IO_VOLUME_CHANGE
-
-
7373654a-812a-11d0-bec7-08002be2092f
-
L’étiquette de volume a changé.
-
-
GUID_IO_VOLUME_CHANGE_SIZE
-
-
3a1625be-ad03-49f1-8ef8-6bbac182d1fd
-
La taille du système de fichiers sur le volume a changé.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
-
-
GUID_IO_VOLUME_DISMOUNT
-
-
d16a55e8-1059-11d2-8ffd-00a0c9a06d32
-
Une tentative de démontage du volume est en cours. Vous devez fermer tous les handles aux fichiers et répertoires sur le volume. Cet événement n’est pas nécessairement précédé d’un événement GUID_IO_VOLUME_LOCK .
-
-
GUID_IO_VOLUME_DISMOUNT_FAILED
-
-
e3c5b178-105d-11d2-8ffd-00a0c9a06d32
-
Une tentative de démontage d’un volume a échoué. Cela se produit souvent parce qu’un autre processus n’a pas pu répondre à un avis de GUID_IO_VOLUME_DISMOUNT en fermant ses handles en suspens. Étant donné que le démontage a échoué, vous pouvez rouvrir tous les handles au volume affecté.
-
-
GUID_IO_VOLUME_FVE_STATUS_CHANGE
-
-
062998b2-ee1f-4b6a-b857-e76cbbe9a6da
-
Le status de chiffrement de lecteur BitLocker du volume a changé. Cet événement est signalé lorsque BitLocker est activé ou désactivé, ou lorsque le chiffrement commence, se termine, s’interrompt ou reprend.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
-
-
GUID_IO_VOLUME_LOCK
-
-
50708874-c9af-11d1-8fef-00a0c9a06d32
-
Un autre processus tente de verrouiller le volume. Vous devez fermer tous les handles aux fichiers et répertoires sur le volume.
-
-
GUID_IO_VOLUME_LOCK_FAILED
-
-
ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32
-
Une tentative de verrouillage d’un volume a échoué. Cela se produit souvent parce qu’un autre processus n’a pas pu répondre à un événement GUID_IO_VOLUME_LOCK en fermant ses handles en attente. Étant donné que le verrou a échoué, vous pouvez rouvrir tous les handles au volume affecté.
-
-
GUID_IO_VOLUME_MOUNT
-
-
b5804878-1a96-11d2-8ffd-00a0c9a06d32
-
Le volume a été monté par un autre processus. Vous pouvez y ouvrir une ou plusieurs poignées.
-
-
GUID_IO_VOLUME_NAME_CHANGE
-
-
2de97f83-4c06-11d2-a532-00609713055a
-
Le nom du volume a été modifié.
-
-
GUID_IO_VOLUME_NEED_CHKDSK
-
-
799a0960-0a0b-4e03-ad88-2fa7c6ce748a
-
Un système de fichiers a détecté une altération sur le volume. L’application doit exécuter CHKDSK sur le volume ou avertir l’utilisateur de le faire.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
-
-
GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE
-
-
2de97f84-4c06-11d2-a532-00609713055a
-
La composition physique ou l’état physique actuel du volume a changé.
-
-
GUID_IO_VOLUME_PREPARING_EJECT
-
-
c79eb16e-0dac-4e7a-a86c-b25ceeaa88f6
-
Le système de fichiers prépare le disque à être éjecté. Par exemple, le système de fichiers arrête une opération de mise en forme en arrière-plan ou ferme la session sur un média d’écriture unique.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
-
-
GUID_IO_VOLUME_UNIQUE_ID_CHANGE
-
-
af39da42-6622-41f5-970b-139d092fa3d9
-
L’identificateur unique du volume a été modifié. Pour plus d’informations sur l’identificateur unique, consultez IOCTL_MOUNTDEV_QUERY_UNIQUE_ID.
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7.
-
-
GUID_IO_VOLUME_UNLOCK
-
-
9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32
-
Le volume a été déverrouillé par un autre processus. Vous pouvez y ouvrir un ou plusieurs handles.
-
-
GUID_IO_VOLUME_WEARING_OUT
-
-
873113ca-1486-4508-82ac-c3b2e5297aaa
-
Les médias sont usants. Cet événement est envoyé lorsqu’un système de fichiers détermine que le taux d’erreur sur un volume est trop élevé ou que son espace de remplacement de défaut est presque épuisé.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.
-
Notes
Les événements GUID_IO_VOLUME_DISMOUNT et GUID_IO_VOLUME_DISMOUNT_FAILED sont liés, tout comme les événements GUID_IO_VOLUME_LOCK et GUID_IO_VOLUME_LOCK_FAILED . Les événements GUID_IO_VOLUME_DISMOUNT et GUID_IO_VOLUME_LOCK indiquent qu’une opération est tentée. Vous devez agir sur la notification d’événement et enregistrer l’action effectuée. Les événements GUID_IO_VOLUME_DISMOUNT_FAILED et GUID_IO_VOLUME_LOCK_FAILED indiquent que la tentative d’opération a échoué. Vous pouvez ensuite utiliser votre enregistrement pour annuler les actions que vous avez effectuées en réponse à l’opération.
Le membre dbch_hdevnotify de la structure DEV_BROADCAST_HANDLE indique l’appareil affecté. Notez qu’il s’agit du handle de notification d’appareil retourné par RegisterDeviceNotification, et non d’un handle de volume. Pour effectuer des opérations sur le volume, mappez ce handle au handle de volume correspondant.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows XP |
Serveur minimal pris en charge |
Windows Server 2003 |
En-tête |
|