https://bugs.winehq.org/show_bug.cgi?id=47362
Bug ID: 47362 Summary: Media Feature Pack for W10N requires rtworkq.dll Product: Wine Version: 4.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tonix64@inventati.org Distribution: ---
I've tried installing the dlls from:
https://www.microsoft.com/en-us/software-download/mediafeaturepack (1803 version)
The feature pack has all the mfplat dlls, including wmv decoders, msmpeg etc so it could be a good way to install the needed dlls for many games without getting them from dodgy places in the internet.
It seems for basic installation and registration of the components a component unavailable in wine is needed: RTWorkQ.dll.
Initially it will complain about some missing methods but incrementally adding them will in the end use these (I just hooked random methods that looked like would return good stub results and would result in safe parameter use, so this is just intended as reference, not as a solution proposal :D):
@ stub RtwqLockWorkQueue @ stub RtwqUnlockWorkQueue @ stdcall RtwqRegisterPlatformEvents(ptr) kernel32.RequestDeviceWakeup @ stdcall RtwqStartup() propsys.PSRefreshPropertySchema @ stdcall RtwqJoinWorkQueue(long ptr ptr) kernel32.SetThreadIdealProcessorEx @ stdcall RtwqLockPlatform() propsys.PSRefreshPropertySchema @ stdcall RtwqUnlockPlatform() propsys.PSRefreshPropertySchema
There's a couple other minor methods/dlls that seem to be required I think just some forwards from currently also not existing api-ms-win-core-processtopology-l1-1-0.
If RtWorkQ can be implemented at least as a proof of concept I could further test this path and maybe get the different mfplat scenarios working. I don't have enough wine/c expertise to actually implement it but I have some expertise in getting mfplat scenarios working.
For now with the spoofed forwards the dlls allow for games to load and progress a bit but it's going to hang waiting for some event probably due to the incomplete work queue.
I also tried installing a rtworkq.dll from windows, but I don't know of a legit redistributable that carries this, and also when trying it (version 10.XXX) I had to add loads more of api-ms style dlls so in the end implementing rtworkq.dll seems like a more direct fix.
https://bugs.winehq.org/show_bug.cgi?id=47362
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Confirming, this is a Win10 only dll. Adding stubs should be easy enough.
https://bugs.winehq.org/show_bug.cgi?id=47362
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://web.archive.org/web | |/20190615092439/https://sof | |tware-download.microsoft.co | |m/pr/Windows_MediaFeaturePa | |ck_x32_1803.msu?t=5e2c298f- | |6b36-4f1b-8869-7c0cf378bb4f | |&e=1560677045&h=383b7bd6d31 | |9eaa48e206557419cbaf6 Keywords| |download CC| |focht@gmx.net
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable links via Internet Archive in case Microsoft pulls the downloads offline in future.
32-bit:
https://web.archive.org/web/20190615092439/https://software-download.microso...
64-bit:
https://web.archive.org/web/20190615094335/https://software-download.microso...
Unpacking:
--- snip --- $ mkdir unpacked && $_
$ 7z x ../Windows_MediaFeaturePack_x32_1803.msu
$ 7z x microsoft-windows-mediafeaturepack-oob-package~31bf3856ad364e35~x86~~.cab --- snip ---
One liner to show which RTWorkQ APIs are imported by which MF dlls:
--- snip --- $ grep -ralZ RTWorkQ . | xargs -r0i bash -c "echo "{}" && winedump -j import "{}" | sed -n '/RTWorkQ.DLL/,/^$/p'"
./x86_microsoft-windows-m..ation-mfmediaengine_31bf3856ad364e35_10.0.17134.1_none_89b70aa01d752673/MFMediaEngine.dll offset 003bbc94 RTWorkQ.DLL Hint/Name Table: 003BF8BC TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 003BF000 Thunk Ordn Name 003bf000 29 RtwqSetLongRunning
./x86_microsoft-windows-media-audio_31bf3856ad364e35_10.0.17134.1_none_5b50456df2885df7/Windows.Media.Audio.dll offset 001367a0 RTWorkQ.DLL Hint/Name Table: 0013B86C TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 0013B07C Thunk Ordn Name 0013b07c 21 RtwqPutWaitingWorkItem 0013b080 7 RtwqCancelWorkItem 0013b084 34 RtwqUnlockWorkQueue 0013b088 8 RtwqCreateAsyncResult 0013b08c 30 RtwqShutdown 0013b090 18 RtwqLockSharedWorkQueue 0013b094 31 RtwqStartup
./x86_microsoft-windows-winmde_31bf3856ad364e35_10.0.17134.1_none_4014e63a4cfc6c46/winmde.dll offset 00168798 RTWorkQ.DLL Hint/Name Table: 0016B688 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 0016B000 Thunk Ordn Name 0016b000 5 RtwqCancelDeadline 0016b004 29 RtwqSetLongRunning 0016b008 15 RtwqInvokeCallback 0016b00c 8 RtwqCreateAsyncResult
./x86_microsoft-windows-mfmpeg2srcsnk_31bf3856ad364e35_10.0.17134.1_none_d509894d7f23ede2/mfmpeg2srcsnk.dll offset 000e4eb8 RTWorkQ.DLL Hint/Name Table: 000EB5AC TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 000EB054 Thunk Ordn Name 000eb054 29 RtwqSetLongRunning
./x86_microsoft-windows-msvideodsp_31bf3856ad364e35_10.0.17134.1_none_58f21f444e7bf9fa/MSVideoDSP.dll offset 00085c08 RTWorkQ.DLL Hint/Name Table: 0008B46C TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 0008B000 Thunk Ordn Name 0008b000 27 RtwqSetDeadline 0008b004 5 RtwqCancelDeadline 0008b008 29 RtwqSetLongRunning
./x86_microsoft-windows-m..ation-mfphotography_31bf3856ad364e35_10.0.17134.1_none_5744b4f1d8db615e/MSPhotography.dll offset 00141510 RTWorkQ.DLL Hint/Name Table: 00146538 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00146000 Thunk Ordn Name 00146000 5 RtwqCancelDeadline 00146004 29 RtwqSetLongRunning 00146008 27 RtwqSetDeadline
./x86_microsoft-windows-mfasfsrcsnk_31bf3856ad364e35_10.0.17134.1_none_49dfe228ed637899/mfasfsrcsnk.dll offset 00136428 RTWorkQ.DLL Hint/Name Table: 00139450 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00139000 Thunk Ordn Name 00139000 29 RtwqSetLongRunning
./x86_microsoft-windows-mfcore_31bf3856ad364e35_10.0.17134.1_none_7a3a970907fe8d26/mfcore.dll grAttrs 00000001 offset 003e9b6c RTWorkQ.DLL Hint/Name Table: 003eab58 Address Table: 004181ec TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 004181ec 8 RtwqCreateAsyncResult 004181f0 5 RtwqCancelDeadline 004181f4 29 RtwqSetLongRunning 004181f8 15 RtwqInvokeCallback 004181fc 27 RtwqSetDeadline
./x86_microsoft-windows-mediafoundation-mfsvr_31bf3856ad364e35_10.0.17134.1_none_481f113e6bd0ff40/mfsvr.dll grAttrs 00000001 offset 000da4fc RTWorkQ.DLL Hint/Name Table: 000db36c Address Table: 000e2010 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000e2010 29 RtwqSetLongRunning 000e2014 5 RtwqCancelDeadline 000e2018 28 RtwqSetDeadline2
./x86_microsoft-windows-mfplat_31bf3856ad364e35_10.0.17134.1_none_800c8981044245d6/mfplat.dll grAttrs 00000001 offset 0013c074 RTWorkQ.DLL Hint/Name Table: 0013cfb0 Address Table: 0014805c TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 0014805c 31 RtwqStartup 00148060 16 RtwqJoinWorkQueue 00148064 32 RtwqUnjoinWorkQueue 00148068 21 RtwqPutWaitingWorkItem 0014806c 7 RtwqCancelWorkItem 00148070 14 RtwqGetWorkQueueMMCSSTaskId 00148074 12 RtwqGetWorkQueueMMCSSClass 00148078 24 RtwqRegisterPlatformWithMMCSS 0014807c 34 RtwqUnlockWorkQueue 00148080 13 RtwqGetWorkQueueMMCSSPriority 00148084 36 RtwqUnregisterPlatformFromMMCSS 00148088 22 RtwqPutWorkItem 0014808c 26 RtwqScheduleWorkItem 00148090 3 RtwqBeginRegisterWorkQueueWithMMCSS 00148094 15 RtwqInvokeCallback 00148098 30 RtwqShutdown 0014809c 35 RtwqUnregisterPlatformEvents 001480a0 17 RtwqLockPlatform 001480a4 33 RtwqUnlockPlatform 001480a8 2 RtwqAllocateWorkQueue 001480ac 23 RtwqRegisterPlatformEvents 001480b0 8 RtwqCreateAsyncResult 001480b4 1 RtwqAllocateSerialWorkQueue
./x86_microsoft-windows-mfnetcore_31bf3856ad364e35_10.0.17134.1_none_1835e4279de13f15/mfnetcore.dll grAttrs 00000001 offset 000f94e4 RTWorkQ.DLL Hint/Name Table: 000fa2b0 Address Table: 001000ac TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 001000ac 29 RtwqSetLongRunning
./x86_microsoft-windows-mfmp4srcsnk_31bf3856ad364e35_10.0.17134.1_none_9011e7d35ee2577e/mfmp4srcsnk.dll offset 0022a834 RTWorkQ.DLL Hint/Name Table: 002304AC TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00230000 Thunk Ordn Name 00230000 29 RtwqSetLongRunning
./x86_microsoft-windows-mfsrcsnk_31bf3856ad364e35_10.0.17134.1_none_77ed3322ae4ba7c7/mfsrcsnk.dll offset 001d8548 RTWorkQ.DLL Hint/Name Table: 001DE684 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 001DE0B0 Thunk Ordn Name 001de0b0 29 RtwqSetLongRunning
./x86_microsoft-windows-enhancedvideorenderer_31bf3856ad364e35_10.0.17134.1_none_19046e7f7d5373c8/evr.dll offset 000946c8 RTWorkQ.DLL Hint/Name Table: 00096554 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00096000 Thunk Ordn Name 00096000 27 RtwqSetDeadline 00096004 5 RtwqCancelDeadline 00096008 29 RtwqSetLongRunning
./x86_microsoft-windows-vidproc_31bf3856ad364e35_10.0.17134.1_none_52cabe0a2762b075/msvproc.dll offset 000fe6e4 RTWorkQ.DLL Hint/Name Table: 00101514 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00101008 Thunk Ordn Name 00101008 21 RtwqPutWaitingWorkItem 0010100c 7 RtwqCancelWorkItem 00101010 8 RtwqCreateAsyncResult
./x86_microsoft-windows-runtime-windows-media_31bf3856ad364e35_10.0.17134.1_none_d0cb5ce57f4a42cf/Windows.Media.dll offset 005950ac RTWorkQ.DLL Hint/Name Table: 0059792C TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) ForwarderChain: 00000000 First thunk RVA: 00597058 Thunk Ordn Name 00597058 29 RtwqSetLongRunning --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=47362
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |mfplat
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- Please retest with current wine. We now have async queues support moved to rtworkq.dll.
https://bugs.winehq.org/show_bug.cgi?id=47362
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=47362
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- Mentioned functions are either implemented or stubbed now. Marking fixed.
https://bugs.winehq.org/show_bug.cgi?id=47362
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.6.