сообщение WM_DEVICECHANGE

Уведомляет приложение об изменении конфигурации оборудования устройства или компьютера.

Окно получает это сообщение через функцию WindowProc .

LRESULT CALLBACK WindowProc(HWND   hwnd,     // handle to window
                            UINT   uMsg,     // WM_DEVICECHANGE
                            WPARAM wParam,   // device-change event
                            LPARAM lParam ); // event-specific data

Параметры

hwnd

Дескриптор окна.

uMsg

Идентификатор WM_DEVICECHANGE .

wParam

Событие, которое произошло. Этот параметр может иметь одно из следующих значений из файла заголовка Dbt.h.

Значение Значение

DBT_DEVNODES_CHANGED0x0007
Устройство добавлено в систему или удалено из нее.

DBT_QUERYCHANGECONFIG0x0017
Запрашивается разрешение на изменение текущей конфигурации (закрепление или отстыковка).

DBT_CONFIGCHANGED0x0018
Текущая конфигурация изменилась из-за док-станции или отстыковки.

DBT_CONFIGCHANGECANCELED0x0019
Запрос на изменение текущей конфигурации (закрепления или отстыковки) был отменен.

DBT_DEVICEARRIVAL0x8000
Устройство или носитель были вставлены и теперь доступны.

DBT_DEVICEQUERYREMOVE0x8001
Запрашивается разрешение на удаление устройства или носителя. Любое приложение может отклонить этот запрос и отменить удаление.

DBT_DEVICEQUERYREMOVEFAILED0x8002
Запрос на удаление устройства или носителя был отменен.

DBT_DEVICEREMOVEPENDING0x8003
Устройство или часть носителя будет удалена. Не может быть отказано.

DBT_DEVICEREMOVECOMPLETE0x8004
Устройство или носитель были удалены.

DBT_DEVICETYPESPECIFIC0x8005
Произошло событие для конкретного устройства.

DBT_CUSTOMEVENT0x8006
Произошло пользовательское событие.

DBT_USERDEFINED0xffff
Значение этого сообщения определяется пользователем.

lParam

Указатель на структуру, содержащую данные, относящиеся к событиям. Его формат зависит от значения параметра wParam . Дополнительные сведения см. в документации по каждому событию.

Возвращаемое значение

Чтобы предоставить запрос, верните значение TRUE .

Верните BROADCAST_QUERY_DENY , чтобы отклонить запрос.

Комментарии

Для устройств, которые предлагают функции, управляемые программным обеспечением, такие как извлечение и блокировка, система обычно отправляет DBT_DEVICEREMOVEPENDING сообщение, чтобы приложения и драйверы устройств корректно завершали использование устройства. Если система принудительно удаляет устройство, она не может отправить DBT_DEVICEQUERYREMOVE сообщение перед этим.

Требования

Требование Значение
Минимальная версия клиента Windows XP
Минимальная версия сервера Windows Server 2003
Заголовок
Winuser.h (включая Windows.h или Dbt.h)

См. также раздел

DBT_CONFIGCHANGECANCELED

DBT_CONFIGCHANGED

DBT_CUSTOMEVENT

DBT_DEVICEARRIVAL

DBT_DEVICEQUERYREMOVE

DBT_DEVICEQUERYREMOVEFAILED

DBT_DEVICEREMOVECOMPLETE

DBT_DEVICEREMOVEPENDING

DBT_DEVICETYPESPECIFIC

DBT_DEVNODES_CHANGED

DBT_QUERYCHANGECONFIG

DBT_USERDEFINED