Partager via


É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.

  1. 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.
  2. Si dbch_devicetype est DBT_DEVTYP_HANDLE, les données d’événement sont en fait un pointeur vers une structure DEV_BROADCAST_HANDLE .
  3. 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
IoEvent.h