Compartir a través de


Eventos de dispositivo (IoEvent.h)

Las aplicaciones, incluidos los servicios, pueden registrarse para recibir notificaciones de eventos de dispositivo. Por ejemplo, un servicio de catálogo puede recibir un aviso de los volúmenes montados o desmontados para que pueda ajustar las rutas de acceso a los archivos del volumen. El sistema notifica a una aplicación que se ha producido un evento de dispositivo enviando a la aplicación un mensaje de WM_DEVICECHANGE . El sistema notifica a un servicio que se ha producido un evento de dispositivo invocando la función de controlador de eventos del servicio , HandlerEx.

Para recibir avisos de eventos de dispositivo, llame a la función RegisterDeviceNotification con una estructura DEV_BROADCAST_HANDLE . Asegúrese de establecer el miembro dbch_handle en el identificador de dispositivo obtenido de la función CreateFile . Además, establezca el miembro dbch_devicetypeen DBT_DEVTYP_HANDLE. La función devuelve un identificador de notificación de dispositivo. Tenga en cuenta que esto no es lo mismo que el identificador de volumen.

Cuando la aplicación recibe una notificación, si el tipo de evento es DBT_CUSTOMEVENT, es posible que haya recibido uno de los eventos de dispositivo definidos en IoEvent.h. Para determinar si se ha producido uno de estos eventos, siga estos pasos.

  1. Trate los datos del evento como una estructura de DEV_BROADCAST_HDR . Compruebe que el miembro dbch_devicetype está establecido en DBT_DEVTYP_HANDLE.
  2. Si dbch_devicetype es DBT_DEVTYP_HANDLE, los datos del evento son realmente un puntero a una estructura de DEV_BROADCAST_HANDLE .
  3. Compare el miembro dbch_eventguid con los GUIDenumerados en la tabla siguiente mediante la función IsEqualGUID .

GUID_IO_CDROM_EXCLUSIVE_LOCK

bc56c139-7a10-47ee-a294-4c6a38f0149a

El dispositivo CD-ROM se ha bloqueado para el acceso exclusivo.

Windows Server 2003 y Windows XP: La compatibilidad con este valor requiere IMAPI 2.0. Para más información, consulte Image Mastering API.

GUID_IO_CDROM_EXCLUSIVE_UNLOCK

a3b6d27d-5e35-4885-81e5-ee18c00ed779

Se ha desbloqueado un dispositivo CD-ROM bloqueado para el acceso exclusivo.

Windows Server 2003 y Windows XP: La compatibilidad con este valor requiere IMAPI 2.0. Para más información, consulte Image Mastering API.

GUID_IO_DEVICE_BECOMING_READY

d07433f0-a98e-11d2-917a-00a0c9068ff3

La puesta en marcha de los medios está en curso.

GUID_IO_DEVICE_EXTERNAL_REQUEST

d07433d0-a98e-11d2-917a-00a0c9068ff3

Hay varias causas posibles para este evento; para obtener más información, consulte la especificación T10 MMC del comando GET EVENT STATUS NOTIFICATION.

GUID_IO_MEDIA_ARRIVAL

d07433c0-a98e-11d2-917a-00a0c9068ff3

Se han agregado medios extraíbles al dispositivo. El miembro dbch_data es un puntero a una estructura CLASS_MEDIA_CHANGE_CONTEXT . El miembro NewState proporciona información de estado. Por ejemplo, un valor de MediaUnavailable indica que el medio no está disponible (por ejemplo, debido a una sesión de grabación activa).

Windows XP: El miembro dbch_data es un valor de ULONG que representa el número de veces que los medios se han cambiado desde el inicio del sistema.

GUID_IO_MEDIA_EJECT_REQUEST

d07433d1-a98e-11d2-917a-00a0c9068ff3

La unidad del medio extraíble ha recibido una solicitud del usuario para expulsar la ranura o el medio especificados.

GUID_IO_MEDIA_REMOVAL

d07433c1-a98e-11d2-917a-00a0c9068ff3

Los medios extraíbles se han quitado del dispositivo o no están disponibles. El miembro dbch_data es un puntero a una estructura CLASS_MEDIA_CHANGE_CONTEXT . El miembro NewState proporciona información de estado. Por ejemplo, un valor de MediaUnavailable indica que el medio no está disponible (por ejemplo, debido a una sesión de grabación activa).

Windows XP: El miembro dbch_data es un valor de ULONG que representa el número de veces que los medios se han cambiado desde el inicio del sistema.

GUID_IO_VOLUME_CHANGE

7373654a-812a-11d0-bec7-08002be2092f

La etiqueta del volumen ha cambiado.

GUID_IO_VOLUME_CHANGE_SIZE

3a1625be-ad03-49f1-8ef8-6bbac182d1fd

El tamaño del sistema de archivos del volumen ha cambiado.

Windows Server 2003 y Windows XP: Este valor no se admite.

GUID_IO_VOLUME_DISMOUNT

d16a55e8-1059-11d2-8ffd-00a0c9a06d32

Un intento de desmontar el volumen está en curso. Debe cerrar todos los identificadores de los archivos y directorios del volumen. Este evento no estará precedido necesariamente por un evento de GUID_IO_VOLUME_LOCK .

GUID_IO_VOLUME_DISMOUNT_FAILED

e3c5b178-105d-11d2-8ffd-00a0c9a06d32

Error al intentar desmontar un volumen. Esto suele ocurrir porque otro proceso no pudo responder a un GUID_IO_VOLUME_DISMOUNT aviso cerrando sus identificadores pendientes. Dado que se produjo un error en el desmontaje, puede volver a abrir los identificadores del volumen afectado.

GUID_IO_VOLUME_FVE_STATUS_CHANGE

062998b2-ee1f-4b6a-b857-e76cbbe9a6da

El estado de cifrado de unidad BitLocker del volumen ha cambiado. Este evento se señala cuando BitLocker está habilitado o deshabilitado, o cuando el cifrado comienza, finaliza, pausa o reanuda.

Windows Server 2003 y Windows XP: Este valor no se admite.

GUID_IO_VOLUME_LOCK

50708874-c9af-11d1-8fef-00a0c9a06d32

Otro proceso está intentando bloquear el volumen. Debe cerrar todos los identificadores de los archivos y directorios del volumen.

GUID_IO_VOLUME_LOCK_FAILED

ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32

Error al intentar bloquear un volumen. Esto suele ocurrir porque otro proceso no pudo responder a un evento de GUID_IO_VOLUME_LOCK cerrando sus identificadores pendientes. Dado que se produjo un error en el bloqueo, puede volver a abrir los identificadores del volumen afectado.

GUID_IO_VOLUME_MOUNT

b5804878-1a96-11d2-8ffd-00a0c9a06d32

Otro proceso ha montado el volumen. Puede abrir uno o varios identificadores.

GUID_IO_VOLUME_NAME_CHANGE

2de97f83-4c06-11d2-a532-00609713055a

Se ha cambiado el nombre del volumen.

GUID_IO_VOLUME_NEED_CHKDSK

799a0960-0a0b-4e03-ad88-2fa7c6ce748a

Un sistema de archivos ha detectado daños en el volumen. La aplicación debe ejecutar CHKDSK en el volumen o notificar al usuario que lo haga.

Windows Server 2003 y Windows XP: Este valor no se admite.

GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE

2de97f84-4c06-11d2-a532-00609713055a

El maquillaje físico o el estado físico actual del volumen ha cambiado.

GUID_IO_VOLUME_PREPARING_EJECT

c79eb16e-0dac-4e7a-a86c-b25ceeaa88f6

El sistema de archivos está preparando el disco que se va a expulsar. Por ejemplo, el sistema de archivos está deteniendo una operación de formato en segundo plano o cerrando la sesión en medios de escritura una vez.

Windows Server 2003 y Windows XP: Este valor no se admite.

GUID_IO_VOLUME_UNIQUE_ID_CHANGE

af39da42-6622-41f5-970b-139d092fa3d9

Se ha cambiado el identificador único del volumen. Para obtener más información sobre el identificador único, consulte IOCTL_MOUNTDEV_QUERY_UNIQUE_ID.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7.

GUID_IO_VOLUME_UNLOCK

9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32

Otro proceso ha desbloqueado el volumen. Puede abrir uno o varios identificadores.

GUID_IO_VOLUME_WEARING_OUT

873113ca-1486-4508-82ac-c3b2e5297aaaa

Los medios están agotados. Este evento se envía cuando un sistema de archivos determina que la tasa de errores de un volumen es demasiado alta o que su espacio de reemplazo de defectos se agota casi.

Windows Server 2003 y Windows XP: Este valor no se admite.

Comentarios

Los eventos GUID_IO_VOLUME_DISMOUNT y GUID_IO_VOLUME_DISMOUNT_FAILED están relacionados, al igual que el evento GUID_IO_VOLUME_LOCK y GUID_IO_VOLUME_LOCK_FAILED . Los eventos GUID_IO_VOLUME_DISMOUNT y GUID_IO_VOLUME_LOCK indican que se está intentando realizar una operación. Debe actuar sobre la notificación de eventos y registrar la acción realizada. Los eventos GUID_IO_VOLUME_DISMOUNT_FAILED y GUID_IO_VOLUME_LOCK_FAILED indican que se produjo un error en la operación intentada. Después, puede usar el registro para deshacer las acciones que realizó en respuesta a la operación.

El miembro dbch_hdevnotify de la estructura de DEV_BROADCAST_HANDLE indica el dispositivo afectado. Tenga en cuenta que este es el identificador de notificación del dispositivo devuelto por RegisterDeviceNotification, no un identificador de volumen. Para realizar operaciones en el volumen, asigne este identificador al identificador de volumen correspondiente.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP
Servidor mínimo compatible
Windows Server 2003
Encabezado
IoEvent.h