https://bugs.winehq.org/show_bug.cgi?id=44925
Bug ID: 44925 Summary: StarForce v3 kernel driver service 'sfhlp02' fails in driver entry point due to 'ntoskrnl.exe.ExCreateCallback' stub (needs STATUS_SUCCESS) Product: Wine Version: 3.5 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: ntoskrnl Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
continuation of bug 44924
--- snip --- ... 0035:Call driver init 0x785300 (obj=0x11caf0,str=L"\Registry\Machine\System\CurrentControlSet\Services\sfhlp02") ... 035:Call ntoskrnl.exe.IoCreateSynchronizationEvent(0065fc80,0065fc8c) ret=00785414 0035:fixme:ntoskrnl:IoCreateSynchronizationEvent (0x65fc80 0x65fc8c) stub 0035:Ret ntoskrnl.exe.IoCreateSynchronizationEvent() retval=cafebabe ret=00785414 0035:Call ntoskrnl.exe.KeEnterCriticalRegion() ret=0078542c 0035:fixme:ntoskrnl:KeEnterCriticalRegion : stub 0035:Ret ntoskrnl.exe.KeEnterCriticalRegion() retval=00000031 ret=0078542c 0035:Call ntoskrnl.exe.KeWaitForSingleObject(cafebabe,00000000,00000000,00000000,00000000) ret=00785437 0035:fixme:ntoskrnl:KeWaitForSingleObject stub: 0xcafebabe, 0, 0, 0, (nil) 0035:Ret ntoskrnl.exe.KeWaitForSingleObject() retval=c0000002 ret=00785437 0035:Call ntoskrnl.exe.RtlInitUnicodeString(0065fc78,007853ac L"\Callback\StarForceCreateThread") ret=00785442 0035:Call ntdll.RtlInitUnicodeString(0065fc78,007853ac L"\Callback\StarForceCreateThread") ret=7bc7f41b 0035:Ret ntdll.RtlInitUnicodeString() retval=0065fc78 ret=7bc7f41b 0035:Ret ntoskrnl.exe.RtlInitUnicodeString() retval=0065fc78 ret=00785442 0035:Call ntoskrnl.exe.ExCreateCallback(0065fc88,0065fc60,00000000,00000001) ret=00785472 0035:fixme:ntoskrnl:ExCreateCallback (0x65fc88, 0x65fc60, 0, 1): stub 0035:Ret ntoskrnl.exe.ExCreateCallback() retval=c0000002 ret=00785472 0035:Call ntoskrnl.exe.ZwClose(00783014) ret=007854ee 0035:Call ntdll.NtClose(00783014) ret=7bc7f41b 0035:Ret ntdll.NtClose() retval=c0000008 ret=7bc7f41b 0035:Ret ntoskrnl.exe.ZwClose() retval=c0000008 ret=007854ee 0035:Call ntoskrnl.exe.KeLeaveCriticalRegion() ret=007854f4 0035:fixme:ntoskrnl:KeLeaveCriticalRegion : stub 0035:Ret ntoskrnl.exe.KeLeaveCriticalRegion() retval=00000031 ret=007854f4 0035:Call ntoskrnl.exe.IoAllocateErrorLogEntry(0011caf0,00000030) ret=0078103a 0035:fixme:ntoskrnl:IoAllocateErrorLogEntry stub: 0x11caf0, 48 0035:Ret ntoskrnl.exe.IoAllocateErrorLogEntry() retval=00000000 ret=0078103a ... 0035:Ret driver init 0x785300 (obj=0x11caf0,str=L"\Registry\Machine\System\CurrentControlSet\Services\sfhlp02") retval=c0000002 ... 0035:Ret ntoskrnl.exe.IoCreateDriver() retval=c0000002 ret=7effb786 0035:err:winedevice:async_create_driver failed to create driver L"sfhlp02": c0000002 --- snip ---
With a patch applied, the driver entry point is successfully executed:
--- snip --- ... 0036:Call driver init 0x785300 (obj=0x11cbb0,str=L"\Registry\Machine\System\CurrentControlSet\Services\sfhlp02") ... 0036:Call ntoskrnl.exe.RtlInitUnicodeString(0065fc78,007853ac L"\Callback\StarForceCreateThread") ret=00785442 0036:Call ntdll.RtlInitUnicodeString(0065fc78,007853ac L"\Callback\StarForceCreateThread") ret=7bc7f41b 0036:Ret ntdll.RtlInitUnicodeString() retval=0065fc78 ret=7bc7f41b 0036:Ret ntoskrnl.exe.RtlInitUnicodeString() retval=0065fc78 ret=00785442 0036:Call ntoskrnl.exe.ExCreateCallback(0065fc88,0065fc60,00000000,00000001) ret=00785472 0036:fixme:ntoskrnl:ExCreateCallback (0x65fc88, 0x65fc60, 0, 1): stub 0036:Ret ntoskrnl.exe.ExCreateCallback() retval=00000000 ret=00785472 ... 0036:Call ntoskrnl.exe.KeLeaveCriticalRegion() ret=0078551a 0036:fixme:ntoskrnl:KeLeaveCriticalRegion : stub 0036:Ret ntoskrnl.exe.KeLeaveCriticalRegion() retval=00000031 ret=0078551a 0036:Ret driver init 0x785300 (obj=0x11cbb0,str=L"\Registry\Machine\System\CurrentControlSet\Services\sfhlp02") retval=00000000 0036:Ret ntoskrnl.exe.IoCreateDriver() retval=00000000 ret=7effb786 0036:Call ntoskrnl.exe.ObReferenceObjectByName(0065fdc0,00000040,00000000,00000000,00000000,00000000,00000000,0065fdc8) ret=7effb810 0036:trace:ntoskrnl:ObReferenceObjectByName mostly-stub:L"\Driver\sfhlp02" 64 (nil) 0 (nil) 0 (nil) 0x65fdc8 0036:Call ntdll.RtlCompareUnicodeString(0065fdc0,0011cbcc,00000000) ret=7ec13108 0036:Ret ntdll.RtlCompareUnicodeString() retval=00000000 ret=7ec13108 0036:Ret ntoskrnl.exe.ObReferenceObjectByName() retval=00000000 ret=7effb810 ... 0036:Call KERNEL32.SetEvent(0000003c) ret=7effb88e 0036:Ret KERNEL32.SetEvent() retval=00000001 ret=7effb88e 0036:Call advapi32.SetServiceStatus(0011b7e0,0065fd84) ret=7effb3d9 --- snip ---
$ sha1sum tmsunrisedemo_setup.exe 2d44577a71718464c595d9da91a017fb0914afc4 tmsunrisedemo_setup.exe
$ du -sh tmsunrisedemo_setup.exe 210M tmsunrisedemo_setup.exe
$ wine --version wine-3.5-91-g3263d51a1f
Regards