Notifies an application of a change to the hardware configuration of a device or the computer.
A window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc(HWND hwnd, // handle to window UINT uMsg, // WM_DEVICECHANGE WPARAM wParam, // device-change event LPARAM lParam ); // event-specific data
A handle to the window.
The WM_DEVICECHANGE identifier.
The event that has occurred. This parameter can be one of the following values from the Dbt.h header file.
A request to change the current configuration (dock or undock) has been canceled.
The current configuration has changed, due to a dock or undock.
A custom event has occurred.
A device or piece of media has been inserted and is now available.
Permission is requested to remove a device or piece of media. Any application can deny this request and cancel the removal.
A request to remove a device or piece of media has been canceled.
A device or piece of media has been removed.
A device or piece of media is about to be removed. Cannot be denied.
A device-specific event has occurred.
A device has been added to or removed from the system.
Permission is requested to change the current configuration (dock or undock).
The meaning of this message is user-defined.
A pointer to a structure that contains event-specific data. Its format depends on the value of the wParam parameter. For more information, refer to the documentation for each event.
Return TRUE to grant the request.
Return BROADCAST_QUERY_DENY to deny the request.
For devices that offer software-controllable features, such as ejection and locking, the system typically sends a DBT_DEVICEREMOVEPENDING message to let applications and device drivers end their use of the device gracefully. If the system forcibly removes a device, it may not send a DBT_DEVICEQUERYREMOVE message before doing so.
Minimum supported client
Minimum supported server
|Windows Server 2003|