From 7d242dfe4c2378ae7b5647bd566f83800b8aa9b6 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 9 Apr 2017 08:51:03 +0000 Subject: [PATCH] [UMPNPMGR] Use SendMessageW() to broadcast WM_DEVICECHANGE messages because BroadcastSystemMessageW() does not seem to work. svn path=/trunk/; revision=74289 --- reactos/base/services/umpnpmgr/umpnpmgr.c | 45 ++++++++++++----------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/reactos/base/services/umpnpmgr/umpnpmgr.c b/reactos/base/services/umpnpmgr/umpnpmgr.c index f2cc8b99d3f..b53fb55bdf6 100644 --- a/reactos/base/services/umpnpmgr/umpnpmgr.c +++ b/reactos/base/services/umpnpmgr/umpnpmgr.c @@ -3565,16 +3565,17 @@ PnpEventThread(LPVOID lpParameter) } else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_ARRIVAL, &RpcStatus)) { - DWORD dwRecipient; +// DWORD dwRecipient; DPRINT("Device arrival: %S\n", PnpEvent->TargetDevice.DeviceIds); - dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; - BroadcastSystemMessageW(BSF_POSTMESSAGE, - &dwRecipient, - WM_DEVICECHANGE, - DBT_DEVNODES_CHANGED, - 0); +// dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; +// BroadcastSystemMessageW(BSF_POSTMESSAGE, +// &dwRecipient, +// WM_DEVICECHANGE, +// DBT_DEVNODES_CHANGED, +// 0); + SendMessageW(HWND_BROADCAST, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, 0); } else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_EJECT_VETOED, &RpcStatus)) { @@ -3586,29 +3587,31 @@ PnpEventThread(LPVOID lpParameter) } else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_SAFE_REMOVAL, &RpcStatus)) { - DWORD dwRecipient; +// DWORD dwRecipient; DPRINT1("Safe removal: %S\n", PnpEvent->TargetDevice.DeviceIds); - dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; - BroadcastSystemMessageW(BSF_POSTMESSAGE, - &dwRecipient, - WM_DEVICECHANGE, - DBT_DEVNODES_CHANGED, - 0); +// dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; +// BroadcastSystemMessageW(BSF_POSTMESSAGE, +// &dwRecipient, +// WM_DEVICECHANGE, +// DBT_DEVNODES_CHANGED, +// 0); + SendMessageW(HWND_BROADCAST, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, 0); } else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_SURPRISE_REMOVAL, &RpcStatus)) { - DWORD dwRecipient; +// DWORD dwRecipient; DPRINT1("Surprise removal: %S\n", PnpEvent->TargetDevice.DeviceIds); - dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; - BroadcastSystemMessageW(BSF_POSTMESSAGE, - &dwRecipient, - WM_DEVICECHANGE, - DBT_DEVNODES_CHANGED, - 0); +// dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS; +// BroadcastSystemMessageW(BSF_POSTMESSAGE, +// &dwRecipient, +// WM_DEVICECHANGE, +// DBT_DEVNODES_CHANGED, +// 0); + SendMessageW(HWND_BROADCAST, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, 0); } else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_REMOVAL_VETOED, &RpcStatus)) { -- 2.17.1