[Bug 45326] Multiple 64-bit kernel drivers crash on unimplemented function ntoskrnl.exe.__C_specific_handler (NoxPlayer 6.x, MTA:SA 1.5.x)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Nov 18 06:33:53 CST 2018
https://bugs.winehq.org/show_bug.cgi?id=45326
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Summary|unimplemented function |Multiple 64-bit kernel
|ntoskrnl.exe.__C_specific_h |drivers crash on
|andler, aborting |unimplemented function
| |ntoskrnl.exe.__C_specific_h
| |andler (NoxPlayer 6.x,
| |MTA:SA 1.5.x)
Hardware|x86 |x86-64
--- Comment #11 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming too.
Taking the example from comment #10 -> NoxPlayer 6.x
NoxPlayer is heavily based on VirtualBox infrastructure, which includes
multiple kernel drivers.
Trace log:
--- snip ---
$ WINEDEBUG=+seh,+relay,+ntoskrnl,+service wine net start YSDrv >>log.txt 2>&1
...
0009:Call KERNEL32.WideCharToMultiByte(000001b5,00000000,00335d80 L"The VBox
Support Driver service is
starting.\r\n",0000002e,00145688,0000002e,00000000,00000000) ret=7efeb7a7
...
002f:trace:service:QueryServiceConfigW Image path = L"C:\\Program
Files (x86)\\Bignox\\BigNoxVM\\RT\\YSDrv.sys"
002f:trace:service:QueryServiceConfigW Group = L""
002f:trace:service:QueryServiceConfigW Dependencies = L""
002f:trace:service:QueryServiceConfigW Service account name = L"LocalSystem"
002f:trace:service:QueryServiceConfigW Display name = L"VBox Support
Driver"
002f:Ret advapi32.QueryServiceConfigW() retval=00000001 ret=7fca4a16a2a6
002f:trace:ntoskrnl:open_driver opened service for driver
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\YSDrv"
...
002f:trace:ntoskrnl:load_driver loading driver L"C:\\Program Files
(x86)\\Bignox\\BigNoxVM\\RT\\YSDrv.sys"
002f:Call KERNEL32.LoadLibraryW(00027070 L"C:\\Program Files
(x86)\\Bignox\\BigNoxVM\\RT\\YSDrv.sys") ret=7fca4a15cc0c
...
002f:Call driver init 0x1400127e0
(obj=0x26ee0,str=L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\YSDrv")
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryMaximumGroupCount" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeGetProcessorIndexFromNumber"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeGetProcessorNumberFromIndex"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeIpiGenericCall" not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeSetTargetProcessorDpcEx" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeInitializeAffinityEx" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeAddProcessorAffinityEx" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeGetProcessorIndexFromNumber"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeGetProcessorNumberFromIndex"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeGetCurrentProcessorNumberEx"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryMaximumProcessorCount"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryMaximumProcessorCountEx"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryMaximumGroupCount" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryActiveProcessorCount"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryActiveProcessorCountEx"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress
L"KeQueryLogicalProcessorRelationship" not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress
L"KeRegisterProcessorChangeCallback" not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress
L"KeDeregisterProcessorChangeCallback" not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQueryInterruptTimePrecise"
not found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"KeQuerySystemTimePrecise" not
found
...
002f:fixme:ntoskrnl:MmGetSystemRoutineAddress L"HalRequestIpi" not found
...
002f:Call ntoskrnl.exe.PsGetVersion(0033f5c0,0033f5c8,0033f5d0,00000000)
ret=140024c75
002f:Call ntdll.RtlGetVersion(0033f2b0) ret=7fca4a167b5d
002f:Ret ntdll.RtlGetVersion() retval=00000000 ret=7fca4a167b5d
002f:Ret ntoskrnl.exe.PsGetVersion() retval=00000001 ret=140024c75
002f:Call ntoskrnl.exe.RtlGetVersion(0033f490) ret=140024cd1
002f:Call ntdll.RtlGetVersion(0033f490) ret=7bc808ef
002f:Ret ntdll.RtlGetVersion() retval=00000000 ret=7bc808ef
002f:Ret ntoskrnl.exe.RtlGetVersion() retval=00000000 ret=140024cd1
002f:trace:seh:NtRaiseException code=c0000096 flags=0 addr=0x1400251ac
ip=1400251ac tid=002f
002f:trace:seh:NtRaiseException rax=0000000000000002 rbx=0000000000027070
rcx=00007fca58290997 rdx=0000000000000000
002f:trace:seh:NtRaiseException rsi=0000000000026ee0 rdi=0000000000027048
rbp=0000000000000000 rsp=000000000033f5c0
002f:trace:seh:NtRaiseException r8=0000000000000000 r9=000000000033ec00
r10=0000000000000000 r11=0000000000000000
002f:trace:seh:NtRaiseException r12=0000000000026ee0 r13=0000000000000000
r14=00000000000259e8 r15=00000001400127e0
002f:trace:seh:call_vectored_handlers calling handler at 0x7fca4a15c1a0
code=c0000096 flags=0
002f:trace:seh:call_vectored_handlers handler at 0x7fca4a15c1a0 returned
ffffffff
002f:trace:seh:NtRaiseException code=c0000096 flags=0 addr=0x1400251c5
ip=1400251c5 tid=002f
002f:trace:seh:NtRaiseException rax=0000000000000002 rbx=0000000000027070
rcx=00007fca58290997 rdx=0000000000000000
002f:trace:seh:NtRaiseException rsi=0000000000026ee0 rdi=0000000000027048
rbp=0000000000000000 rsp=000000000033f5c0
002f:trace:seh:NtRaiseException r8=0000000000000000 r9=000000000033ec00
r10=0000000000000000 r11=0000000000000000
002f:trace:seh:NtRaiseException r12=0000000000026ee0 r13=0000000000000000
r14=00000000000259e8 r15=00000001400127e0
002f:trace:seh:call_vectored_handlers calling handler at 0x7fca4a15c1a0
code=c0000096 flags=0
002f:trace:seh:call_vectored_handlers handler at 0x7fca4a15c1a0 returned
ffffffff
002f:trace:seh:NtRaiseException code=c0000005 flags=0 addr=0x1400251ed
ip=1400251ed tid=002f
002f:trace:seh:NtRaiseException info[0]=0000000000000000
002f:trace:seh:NtRaiseException info[1]=0000000000000020
002f:trace:seh:NtRaiseException rax=0000000000000000 rbx=00000000756e6547
rcx=000000006c65746e rdx=0000000049656e69
002f:trace:seh:NtRaiseException rsi=0000000000026ee0 rdi=0000000000027048
rbp=0000000000000000 rsp=000000000033f5c0
002f:trace:seh:NtRaiseException r8=0000000000000000 r9=000000000033ec00
r10=0000000000000000 r11=0000000000000000
002f:trace:seh:NtRaiseException r12=0000000000026ee0 r13=0000000000000000
r14=00000000000259e8 r15=00000001400127e0
002f:trace:seh:call_vectored_handlers calling handler at 0x7fca4a15c1a0
code=c0000005 flags=0
002f:trace:seh:call_vectored_handlers handler at 0x7fca4a15c1a0 returned 0
002f:trace:seh:RtlVirtualUnwind type 1 rip 1400251ed rsp 33f5c0
002f:trace:seh:dump_unwind_info **** func 24e70-2542f
002f:trace:seh:dump_unwind_info unwind info at 0x14003ab6c flags 1 prolog 0x10
bytes function 0x140024e70-0x14002542f
002f:trace:seh:dump_unwind_info 0x10: subq $0x60,%rsp
002f:trace:seh:dump_unwind_info 0xc: pushq %r15
002f:trace:seh:dump_unwind_info 0xa: pushq %r14
002f:trace:seh:dump_unwind_info 0x8: pushq %r13
002f:trace:seh:dump_unwind_info 0x6: pushq %r12
002f:trace:seh:dump_unwind_info 0x4: pushq %rdi
002f:trace:seh:dump_unwind_info 0x3: pushq %rsi
002f:trace:seh:dump_unwind_info 0x2: pushq %rbx
002f:trace:seh:dump_unwind_info handler 0x14002b3e8 data at 0x14003ab84
002f:trace:seh:call_handler calling handler 0x14002b3e8 (rec=0x33f480,
frame=0x33f5c0 context=0x33e950, dispatch=0x33e820)
002f:trace:seh:NtRaiseException code=80000100 flags=1 addr=0x7bc5e16c
ip=7bc5e16c tid=002f
002f:trace:seh:NtRaiseException info[0]=0000000140057848
002f:trace:seh:NtRaiseException info[1]=00000001400572ee
wine: Call from 0x7bc5e16c to unimplemented function
ntoskrnl.exe.__C_specific_handler, aborting
--- snip ---
Driver registry entry:
--- snip ---
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\YSDrv]
"DisplayName"="VBox Support Driver"
"ErrorControl"=dword:00000001
"ImagePath"="C:\\Program Files (x86)\\Bignox\\BigNoxVM\\RT\\YSDrv.sys"
"ObjectName"="LocalSystem"
"PreshutdownTimeout"=dword:0002bf20
"Start"=dword:00000003
"Type"=dword:00000001
--- snip ---
Dissecting the trace log:
--- snip ---
00000001400251AC mov r8, cr8 ; read old TPR
--- snip ---
64-bit TPR access, exception handled (instruction emulated)
https://xem.github.io/minix86/manual/intel-x86-and-64-manual-vol3/o_fe12b1e2a880e0ce-390.html
("Chapter 10.8.3 Interrupt, Task and Processor Priority")
--- snip ---
00000001400251B0 mov [rsp+98h+arg_10], r8
00000001400251B8 mov [rsp+98h+arg_0], r8b
00000001400251C0 mov eax, 2
00000001400251C5 mov cr8, rax ; write new task priority (TPR)
--- snip ---
64-bit TPR access, exception handled (instruction emulated)
--- snip ---
00000001400251C9 xor eax, eax
00000001400251CB xor ecx, ecx
00000001400251CD cpuid
00000001400251CF mov [rsp+98h+var_44], eax
00000001400251D3 mov [rsp+98h+var_50], ebx
00000001400251D7 mov [rsp+98h+var_48], ecx
00000001400251DB mov [rsp+98h+var_4C], edx
00000001400251DF mov byte ptr [rsp+98h+var_44], 0
00000001400251E4 mov rax, gs:18h
00000001400251ED mov rdi, [rax+20h] ; *boom*
00000001400251F1 mov [rsp+98h+var_68], rdi
00000001400251F6 jmp short loc_14002520F
00000001400251F8 xor edi, edi
00000001400251FA mov [rsp+98h+var_68], rdi
00000001400251FF movzx eax, [rsp+98h+arg_0]
0000000140025207 mov [rsp+98h+arg_10], rax
...
--- snip ---
GS:[0x18] -> NT SubSystemTib
Looks like it's trying to access some unknown member there.
I found the C scope table for the function-specific exception handler here:
--- snip ---
...
000000014003AB88 C_SCOPE_TABLE <rva loc_1400251E4, rva loc_1400251F8, 1, \
000000014003AB88 rva loc_1400251F8>
...
--- snip ---
which indicates a NULL 'NT SubSystemTib' is kinda expected on Win64
---
In case of MTA San Andreas 1.5.x (https://mtasa.com/download/), the driver
causing this (due to other Wine insufficiencies):
--- snip ---
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\FairplayKD]
"DisplayName"="FairplayKD"
"ErrorControl"=dword:00000001
"ImagePath"="C:\\ProgramData\\MTA San Andreas
All\\Common\\temp\\FairplayKD.sys"
"ObjectName"="LocalSystem"
"PreshutdownTimeout"=dword:0002bf20
"Start"=dword:00000003
"Type"=dword:00000001
"WOW64"=dword:00000001
--- snip ---
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