Arkadiusz Hiler : plugplay: Send WM_DEVICECHANGE with DBT_DEVNODES_CHANGED with each event.

Alexandre Julliard julliard at winehq.org
Fri Dec 4 14:36:04 CST 2020


Module: wine
Branch: master
Commit: 743c266e6496345d0a55c83b0cfc741b0f381d4e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=743c266e6496345d0a55c83b0cfc741b0f381d4e

Author: Arkadiusz Hiler <ahiler at codeweavers.com>
Date:   Wed Nov 25 17:04:15 2020 +0200

plugplay: Send WM_DEVICECHANGE with DBT_DEVNODES_CHANGED with each event.

Windows sends *a lot* of those messages whenever there's a device / drive /
etc. appearing or disappearing.

This fixes controller hotplug in Doom (2016).

Signed-off-by: Arkadiusz Hiler <ahiler at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/plugplay/main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/programs/plugplay/main.c b/programs/plugplay/main.c
index 2c4054de3e4..19e02286312 100644
--- a/programs/plugplay/main.c
+++ b/programs/plugplay/main.c
@@ -19,6 +19,7 @@
 #define WIN32_LEAN_AND_MEAN
 
 #include <windows.h>
+#include <dbt.h>
 #include "winsvc.h"
 #include "wine/debug.h"
 #include "wine/list.h"
@@ -142,6 +143,7 @@ void __cdecl plugplay_send_event( DWORD code, const BYTE *data, unsigned int siz
     struct event *event;
 
     BroadcastSystemMessageW( BSF_FORCEIFHUNG | BSF_QUERY, NULL, WM_DEVICECHANGE, code, (LPARAM)data );
+    BroadcastSystemMessageW( BSF_FORCEIFHUNG | BSF_QUERY, NULL, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, 0 );
 
     EnterCriticalSection( &plugplay_cs );
 




More information about the wine-cvs mailing list