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