События устройства (IoEvent.h)
Приложения, включая службы, могут регистрироваться для получения уведомлений о событиях устройства. Например, служба каталога может получать уведомления о томах, которые подключаются или отключается, чтобы настроить пути к файлам на томе. Система уведомляет приложение о том, что произошло событие устройства, отправляя приложению WM_DEVICECHANGE сообщение. Система уведомляет службу о том, что произошло событие устройства, вызывая функцию обработчика событий службы HandlerEx.
Чтобы получать уведомления о событиях устройства, вызовите функцию RegisterDeviceNotification со структурой DEV_BROADCAST_HANDLE . Не забудьте задать элемент dbch_handle дескриптор устройства, полученный из функции CreateFile . Кроме того, задайте для элемента dbch_devicetypeзначение DBT_DEVTYP_HANDLE. Функция возвращает дескриптор уведомления устройства. Обратите внимание, что это не то же самое, что дескриптор тома.
Когда приложение получает уведомление, если тип события DBT_CUSTOMEVENT, возможно, вы получили одно из событий устройства, определенное в IoEvent.h. Чтобы определить, произошло ли одно из этих событий, выполните следующие действия.
- Обрабатывать данные событий как DEV_BROADCAST_HDR структуру. Убедитесь, что для элемента dbch_devicetype задано значение DBT_DEVTYP_HANDLE.
- Если dbch_devicetypeDBT_DEVTYP_HANDLE, данные события действительно являются указателем на структуру DEV_BROADCAST_HANDLE .
- Сравните элемент dbch_eventguid с GUID, перечисленными в следующей таблице, с помощью функции IsEqualGUID .
-
GUID_IO_CDROM_EXCLUSIVE_LOCK
-
-
bc56c139-7a10-47ee-a294-4c6a38f0149a
-
Устройство компакт-диска заблокировано для монопольного доступа.
Windows Server 2003 и Windows XP: Для поддержки этого значения требуется IMAPI 2.0. Дополнительные сведения см. в разделе API мастеринга образов.
-
-
GUID_IO_CDROM_EXCLUSIVE_UNLOCK
-
-
a3b6d27d-5e35-4885-81e5-ee18c00ed779
-
Устройство компакт-дисков, которое было заблокировано для монопольного доступа, разблокировано.
Windows Server 2003 и Windows XP: Для поддержки этого значения требуется IMAPI 2.0. Дополнительные сведения см. в разделе API мастеринга образов.
-
-
GUID_IO_DEVICE_BECOMING_READY
-
-
d07433f0-a98e-11d2-917a-00a0c9068ff3
-
Идет раскрутка мультимедиа.
-
-
GUID_IO_DEVICE_EXTERNAL_REQUEST
-
-
d07433d0-a98e-11d2-917a-00a0c9068ff3
-
Существует несколько возможных причин этого события. Дополнительные сведения см. в спецификации T10 MMC команды GET EVENT STATUS NOTIFICATION.
-
-
GUID_IO_MEDIA_ARRIVAL
-
-
d07433c0-a98e-11d2-917a-00a0c9068ff3
-
На устройство добавлен съемный носитель. Элемент dbch_data является указателем на структуру CLASS_MEDIA_CHANGE_CONTEXT . Элемент NewState предоставляет сведения о состоянии. Например, значение MediaUnavailable указывает, что носитель недоступен (например, из-за активного сеанса записи).
Windows XP: Элемент dbch_data — это значение ULONG , представляющее количество изменений мультимедиа с момента запуска системы.
-
-
GUID_IO_MEDIA_EJECT_REQUEST
-
-
d07433d1-a98e-11d2-917a-00a0c9068ff3
-
Диск съемного носителя получил запрос от пользователя на извлечение указанного слота или носителя.
-
-
GUID_IO_MEDIA_REMOVAL
-
-
d07433c1-a98e-11d2-917a-00a0c9068ff3
-
Съемный носитель был удален с устройства или недоступен. Элемент dbch_data является указателем на структуру CLASS_MEDIA_CHANGE_CONTEXT . Элемент NewState предоставляет сведения о состоянии. Например, значение MediaUnavailable указывает, что носитель недоступен (например, из-за активного сеанса записи).
Windows XP: Элемент dbch_data — это значение ULONG , представляющее количество изменений мультимедиа с момента запуска системы.
-
-
GUID_IO_VOLUME_CHANGE
-
-
7373654a-812a-11d0-bec7-08002be2092f
-
Метка тома изменилась.
-
-
GUID_IO_VOLUME_CHANGE_SIZE
-
-
3a1625be-ad03-49f1-8ef8-6bbac182d1fd
-
Размер файловой системы на томе изменился.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
-
-
GUID_IO_VOLUME_DISMOUNT
-
-
d16a55e8-1059-11d2-8ffd-00a0c9a06d32
-
Выполняется попытка отключения тома. Следует закрыть все дескрипторы для файлов и каталогов тома. Этому событию не обязательно предшествует событие GUID_IO_VOLUME_LOCK .
-
-
GUID_IO_VOLUME_DISMOUNT_FAILED
-
-
e3c5b178-105d-11d2-8ffd-00a0c9a06d32
-
Попытка отключения тома завершилась сбоем. Это часто происходит из-за того, что другой процесс не смог ответить на уведомление GUID_IO_VOLUME_DISMOUNT , закрыв его незакрытые дескрипторы. Из-за сбоя отключения можно повторно открыть все дескрипторы затронутого тома.
-
-
GUID_IO_VOLUME_FVE_STATUS_CHANGE
-
-
062998b2-ee1f-4b6a-b857-e76cbbe9a6da
-
Состояние шифрования диска BitLocker тома изменилось. Это событие подается при включении или отключении BitLocker, а также при запуске, завершении, приостановке или возобновлении шифрования.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
-
-
GUID_IO_VOLUME_LOCK
-
-
50708874-c9af-11d1-8fef-00a0c9a06d32
-
Другой процесс — попытка заблокировать том. Следует закрыть все дескрипторы для файлов и каталогов тома.
-
-
GUID_IO_VOLUME_LOCK_FAILED
-
-
ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32
-
Попытка блокировки тома завершилась сбоем. Это часто происходит из-за того, что другой процесс не смог ответить на событие GUID_IO_VOLUME_LOCK , закрыв его необработанные дескрипторы. Так как блокировка завершилась сбоем, можно повторно открыть все дескрипторы затронутого тома.
-
-
GUID_IO_VOLUME_MOUNT
-
-
b5804878-1a96-11d2-8ffd-00a0c9a06d32
-
Том был подключен другим процессом. Вы можете открыть один или несколько дескрипторов.
-
-
GUID_IO_VOLUME_NAME_CHANGE
-
-
2de97f83-4c06-11d2-a532-00609713055a
-
Имя тома было изменено.
-
-
GUID_IO_VOLUME_NEED_CHKDSK
-
-
799a0960-0a0b-4e03-ad88-2fa7c6ce748a
-
Файловая система обнаружила повреждение тома. Приложение должно запустить CHKDSK на томе или уведомить пользователя об этом.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
-
-
GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE
-
-
2de97f84-4c06-11d2-a532-00609713055a
-
Изменился физический состав или текущее физическое состояние тома.
-
-
GUID_IO_VOLUME_PREPARING_EJECT
-
-
c79eb16e-0dac-4e7a-a86c-b25ceeaa88f6
-
Файловая система готовит диск к извлечению. Например, файловая система останавливает фоновую операцию форматирования или закрывает сеанс на носителе с однократной записью.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
-
-
GUID_IO_VOLUME_UNIQUE_ID_CHANGE
-
-
af39da42-6622-41f5-970b-139d092fa3d9
-
Изменен уникальный идентификатор тома. Дополнительные сведения об уникальном идентификаторе см. в разделе IOCTL_MOUNTDEV_QUERY_UNIQUE_ID.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7.
-
-
GUID_IO_VOLUME_UNLOCK
-
-
9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32
-
Том был разблокирован другим процессом. Для него можно открыть один или несколько дескрипторов.
-
-
GUID_IO_VOLUME_WEARING_OUT
-
-
873113ca-1486-4508-82ac-c3b2e5297aaa
-
Средства массовой информации изношены. Это событие отправляется, когда файловая система определяет, что частота ошибок на томе слишком высока или его место для замены дефектов почти исчерпано.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
-
Комментарии
События GUID_IO_VOLUME_DISMOUNT и GUID_IO_VOLUME_DISMOUNT_FAILED связаны, как и события GUID_IO_VOLUME_LOCK и GUID_IO_VOLUME_LOCK_FAILED . События GUID_IO_VOLUME_DISMOUNT и GUID_IO_VOLUME_LOCK указывают на то, что выполняется операция. Вы должны действовать в уведомлении о событии и записывать выполненные действия. События GUID_IO_VOLUME_DISMOUNT_FAILED и GUID_IO_VOLUME_LOCK_FAILED указывают на сбой операции. Затем можно использовать запись для отмены действий, выполненных в ответ на операцию.
Элемент dbch_hdevnotify структуры DEV_BROADCAST_HANDLE указывает на затронутого устройства. Обратите внимание, что это дескриптор уведомления устройства, возвращаемый RegisterDeviceNotification, а не дескриптор тома. Чтобы выполнить операции с томом, сопоставьте этот дескриптор с соответствующим дескриптором тома.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP |
Минимальная версия сервера |
Windows Server 2003 |
Заголовок |
|