[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