The WM_DEVICECHANGE device message notifies an application or device driver of a change to the hardware configuration of a device or the computer.
Event = (UINT) wParam;
dwData = (DWORD) lParam;
Parameters
Event
Event type. This parameter can be one of the following values:
Value | Meaning |
DBT_CONFIGCHANGECANCELED | A request to change the current configuration (dock or undock) has been canceled. |
DBT_CONFIGCHANGED | The current configuration has changed, due to a dock or undock. |
DBT_DEVICEARRIVAL | A device has been inserted and is now available. |
DBT_DEVICEQUERYREMOVE | Permission is requested to remove a device. Any application can deny this request and cancel the removal. |
DBT_DEVICEQUERYREMOVEFAILED | A request to remove a device has been canceled. |
DBT_DEVICEREMOVECOMPLETE | A device has been removed. |
DBT_DEVICEREMOVEPENDING | A device is about to be removed. Cannot be denied. |
DBT_DEVICETYPESPECIFIC | A device-specific event has occurred. |
DBT_QUERYCHANGECONFIG | Permission is requested to change the current configuration (dock or undock). |
DBT_USERDEFINED | The meaning of this message is user-defined. |
dwData
Address of a structure that contains event-specific data. Its meaning depends on the given event.
Return Values
Return TRUE to grant a requested action.
Return QUERY_BROADCAST_DENY to deny a requested action.
Remarks
For devices that offer software-controllable features, such as ejection and locking, the operating system typically sends a DBT_DEVICEREMOVEPENDING message to let applications and device drivers end their use of the device gracefully.
If the operating system forcibly removes a device, it may not send a DBT_DEVICEQUERYREMOVE message before doing so.
DBT_CONFIGCHANGECANCELED, DBT_CONFIGCHANGED, DBT_DEVICEARRIVAL, DBT_DEVICEQUERYREMOVE, DBT_DEVICEQUERYREMOVEFAILED, DBT_DEVICEREMOVECOMPLETE, DBT_DEVICEREMOVEPENDING, DBT_DEVICETYPESPECIFIC, DBT_QUERYCHANGECONFIG, DBT_USERDEFINED