Sweden-Number/programs
Rémi Bernon f5ca06016d plugplay: Broadcast WM_DEVICECHANGE message asynchronously.
It may otherwise trigger a nasty race condition, where:

1) For explorer.exe to register the CLSID_ShellWindows classes, it
   needs RpcSS service to be started,

2) services.exe may start WinePlugPlay service group first, waiting for
   its startup to complete,

3) during startup and early device enumeration, hidclass.sys may call
   IoSetDeviceInterfaceState, which calls plugplay_send_event [1],

4) plugplay_send_event tries to broadcast a WM_DEVICECHANGE message with
   BSF_QUERY, waiting for the individual threads to reply,

5) which times-out because window threads are waiting on explorer.exe
   to create its desktop window and reply to the WM_NULL SendMessage.

This happens more likely as there is threads with message queues
being started, each waiting on the desktop window to reply. Usually
explorer.exe is able to reply to some messages with the implicit
message processing while creating its window, but not all of them.

[1] Not completely sure how, it looks like some RPC too, but before
    RpcSs is started?

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 23:01:38 +01:00
..
arp programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
aspnet_regiis programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
attrib attrib: Use CP_ACP for non-console output encoding. 2020-11-13 13:18:07 +01:00
cabarc cabarc: Use wide-char string literals. 2020-10-06 11:55:04 +02:00
cacls programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
chcp.com chcp: Set the global codepage when called with an argument. 2019-12-12 23:16:40 +01:00
clock clock: Use wide-char string literals. 2020-10-06 11:55:07 +02:00
cmd cmd: Fix handling of brackets in if-set expressions on a single line. 2021-02-10 20:07:24 +01:00
conhost conhost: Improve notification when resizing window. 2021-02-03 20:59:55 +01:00
control control: Use wide-char string literals. 2020-10-06 11:55:10 +02:00
cscript wscript: Build with msvcrt. 2019-05-02 11:08:17 +02:00
dism dism: Add version resource. 2020-10-01 11:46:15 +02:00
dplaysvr dplaysvr: Add stub program. 2020-10-23 20:25:06 +02:00
dpnsvr dpnsvr: Add version resource. 2020-11-03 22:18:47 +01:00
dpvsetup dpvsetup: Add stub program. 2020-10-23 20:25:51 +02:00
dxdiag dxdiag: Use wide-char string literals. 2020-10-06 11:55:15 +02:00
eject eject: Use wide-char string literals. 2020-10-09 10:45:18 +02:00
expand programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
explorer explorer: Send systray messages with SendNotifyMessage(). 2021-02-01 11:02:02 +01:00
extrac32 extrac32: Use wide-char string literals. 2020-10-06 11:55:18 +02:00
fc programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
find find: Use wide-char string literals. 2020-10-20 12:42:40 +02:00
findstr programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
fsutil fsutils/tests: Fsutils requires elevated privileges on Windows <= 7. 2020-12-02 19:08:04 +01:00
hh hh: Build with msvcrt. 2019-04-30 09:53:59 +02:00
hostname hostname: Use CP_ACP for non-console output encoding. 2020-11-13 13:18:11 +01:00
icacls programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
icinfo icinfo: Use wide-char string literals. 2020-11-11 21:14:58 +01:00
iexplore iexplore: Use wide-char string literals. 2020-10-13 11:30:41 +02:00
ipconfig ipconfig: Use wide-char string literals. 2020-10-21 10:50:47 +02:00
lodctr programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
mofcomp programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
mshta makefiles: Build stub programs with msvcrt. 2019-04-24 11:27:57 +02:00
msidb msidb: Use wide-char string literals. 2020-11-11 21:14:58 +01:00
msiexec msiexec: Use wide-char string literals. 2020-10-08 10:46:02 +02:00
msinfo32 programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
net net: Use wide-char string literals. 2020-10-06 11:55:24 +02:00
netsh programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
netstat programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
ngen programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
notepad notepad: Use int for point size value. 2020-05-13 22:07:32 +02:00
oleview oleview: Inline WCHAR strings of length 1. 2020-11-17 09:55:42 +01:00
ping programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
plugplay plugplay: Broadcast WM_DEVICECHANGE message asynchronously. 2021-02-16 23:01:38 +01:00
powershell programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
presentationfontcache presentationfontcache: Use wide-char string literals. 2020-10-12 10:40:18 +02:00
progman progman: Use wide-char string literals. 2020-10-08 12:40:29 +02:00
reg reg/tests: Add initial syntax tests for 'reg copy'. 2021-02-09 21:17:05 +01:00
regasm programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
regedit regedit: FormatMessage() now reports ERROR_NO_WORK_DONE error for empty string. 2020-05-13 22:07:31 +02:00
regini programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
regsvcs programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
regsvr32 regsvr32: Use a string literal for an empty string. 2020-12-03 10:25:26 +01:00
rpcss rpcss: Use wide-char string literals. 2020-10-19 10:59:10 +02:00
rundll.exe16 makefiles: Always build 16-bit modules with msvcrt. 2020-04-02 11:09:19 +02:00
rundll32 rundll32: Use wide-char string literals. 2020-10-08 12:40:29 +02:00
sc sc: Use wide-char string literals. 2020-10-07 10:16:02 +02:00
schtasks schtasks/tests: Use wide-char string literals. 2020-10-20 12:42:33 +02:00
sdbinst programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
secedit programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
servicemodelreg programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
services services: Make svcctl_{Lock, Unlock}ServiceDatabase() into a no-op. 2020-04-28 11:21:45 +02:00
shutdown programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
spoolsv spoolsv: Use wide-char string literals. 2020-10-12 10:40:12 +02:00
start start: Use wide-char string literals. 2020-11-12 11:15:24 +01:00
subst programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
svchost svchost: Inline a simple string. 2020-11-04 09:06:24 +01:00
systeminfo programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
taskkill taskkill: Use wide-char string literals. 2020-10-07 10:16:04 +02:00
tasklist programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
taskmgr taskmgr: Use two kernel32 functions directly. 2020-10-20 12:43:20 +02:00
termsv termsv: Use wide-char string literals. 2020-10-12 10:40:15 +02:00
uninstaller uninstaller: FormatMessage() now reports ERROR_NO_WORK_DONE error for empty string. 2020-05-13 22:07:32 +02:00
unlodctr programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
view view: Use wide-char string literals. 2020-10-07 10:16:10 +02:00
wevtutil programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
where where.exe: Add stub program. 2020-07-01 21:39:25 +02:00
whoami whoami: Add semi-stub application to display username. 2020-03-10 20:12:57 +01:00
wineboot wineboot: Set the NXSupportPolicy member of the user shared data to NX_SUPPORT_POLICY_OPTIN. 2021-01-29 10:17:41 +01:00
winebrowser Revert "winecrt0: Make the main() and wmain() entry points cdecl." 2020-12-04 11:01:41 +01:00
winecfg ntdll: Bump Win 10 version to 17763. 2020-09-28 13:23:44 +02:00
wineconsole wineconsole: Reimplement as AllocConsole wrapper. 2020-10-12 18:49:41 +02:00
winedbg ntdll: Print a warning or an error for other exceptions. 2021-02-08 11:04:17 +01:00
winedevice winedevice: Use wide-char string literals. 2020-11-04 09:06:03 +01:00
winefile winefile: Explicitly mark qsort() callback funtions cdecl. 2019-05-06 07:13:53 -05:00
winemenubuilder winemenubuilder: Silence out of bounds compiler warning. 2020-11-26 23:25:38 +01:00
winemine winemine: Use wide-char string literals. 2020-10-07 10:16:12 +02:00
winemsibuilder programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
winepath winepath: Avoid CR characters in output. 2020-04-15 22:53:48 +02:00
winetest makefiles: Generate a single non-recursive makefile at the top level. 2020-09-14 19:42:39 +02:00
winevdm Revert "winecrt0: Make the main() and wmain() entry points cdecl." 2020-12-04 11:01:41 +01:00
winhelp.exe16 makefiles: Always build 16-bit modules with msvcrt. 2020-04-02 11:09:19 +02:00
winhlp32 winhlp32: Build with msvcrt. 2019-05-02 11:08:17 +02:00
winmgmt winmgmt: Use wide-char string literals. 2020-10-12 10:40:21 +02:00
winoldap.mod16 makefiles: Always build 16-bit modules with msvcrt. 2020-04-02 11:09:19 +02:00
winver winver: Build with msvcrt. 2020-04-09 09:44:59 +02:00
wmic wmic: Use wide-char string literals. 2020-10-26 10:24:08 +01:00
wmplayer programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
wordpad wordpad: Make qsort callback function cdecl. 2021-01-18 22:46:36 +01:00
write write: Use wide-char string literals. 2020-10-12 10:40:05 +02:00
wscript wscript: Use a zero terminated wchar string. 2020-11-04 09:05:47 +01:00
wuauserv programs: Make all program entrypoints cdecl. 2019-10-17 17:05:47 +02:00
wusa wusa: Install updates. 2019-12-02 22:02:56 +01:00
xcopy xcopy: Avoid an empty if-block. 2020-10-21 10:51:01 +02:00