https://bugs.winehq.org/show_bug.cgi?id=50353
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
even with a stub it won't go much further (as expected).
Set the service in registry to 'manual start' type (3).
--- snip --- $ WINEDEBUG=+seh,+relay,+ntoskrnl,+loaddll,+winedevice wine net start TICalc
log.txt 2>&1
... 008c:Call driver init 00E80AA6 (obj=0012CD40,str=L"\Registry\Machine\System\CurrentControlSet\Services\TICalc") 008c:Call ntoskrnl.exe.MmLockPagableDataSection(00e80366) ret=00e80aca 008c:fixme:ntoskrnl:MmLockPagableDataSection 00E80366 stub. 008c:Ret ntoskrnl.exe.MmLockPagableDataSection() retval=0badc0de ret=00e80aca 008c:Call ntoskrnl.exe.IoQueryDeviceDescription(00d5fb80,00000000,00d5fb68,00000000,00000000,00000000,00e80d02,00d5fb74) ret=00e80b11 008c:fixme:ntoskrnl:IoQueryDeviceDescription (00D5FB80 00000000 00D5FB68 00000000 00000000 00000000 00E80D02 00D5FB74) 008c:Ret ntoskrnl.exe.IoQueryDeviceDescription() retval=c0000002 ret=00e80b11 008c:Call ntoskrnl.exe.MmUnlockPagableImageSection(0badc0de) ret=00e80cf8 008c:fixme:ntoskrnl:MmUnlockPagableImageSection stub 0BADC0DE 008c:Ret ntoskrnl.exe.MmUnlockPagableImageSection() retval=0000000e ret=00e80cf8 008c:Call KERNEL32.IsBadStringPtrW(0012b7b0,ffffffff) ret=00365e24 008c:Ret KERNEL32.IsBadStringPtrW() retval=00000000 ret=00365e24 008c:Ret driver init 00E80AA6 (obj=0012CD40,str=L"\Registry\Machine\System\CurrentControlSet\Services\TICalc") retval=c0000002 008c:Call KERNEL32.IsBadStringPtrW(0012b818,ffffffff) ret=00365e24 008c:Ret KERNEL32.IsBadStringPtrW() retval=00000000 ret=00365e24 008c:trace:ntoskrnl:init_driver init done for L"TICalc" obj 0012CD40 ... --- snip ---
I intentionally returned 0x0badc0de "magic" from MmLockPagableDataSection() stub to see the usage with related API calls MmLockPagableSectionByHandle(), MmUnlockPagableImageSection() etc.
Microsoft docs:
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-mml...
Anyway, the next problem is IoQueryDeviceDescription() being a stub.
https://source.winehq.org/git/wine.git/blob/0aa6f8e2ea1e3f2e852bef1a07d0d1f9...
Tidbit:
The app installer needs to be run in 32-bit WINEPREFIX (WINEARCH=win32). In a 64-bit WINEPREFIX it actually installs a 32-bit kernel driver which is stupid because this can't work by design on Windows. While Wine allows this, the driver can't be started because the service entry has no explicit driver path (syswow64) and Wine assumes 64-bit service when searching for the executable.
Regards