[Bug 50353] TI-Graph Link 8x 'Ticalc.sys' driver crashes on unimplemented function ntoskrnl.exe.MmLockPagableDataSection

WineHQ Bugzilla wine-bugs at winehq.org
Fri Dec 18 11:56:01 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=50353

--- Comment #6 from Anastasius Focht <focht at 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-mmlockpagabledatasection

Anyway, the next problem is IoQueryDeviceDescription() being a stub.

https://source.winehq.org/git/wine.git/blob/0aa6f8e2ea1e3f2e852bef1a07d0d1f983870150:/dlls/ntoskrnl.exe/ntoskrnl.c#l1824

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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list