https://bugs.winehq.org/show_bug.cgi?id=45819
Bug ID: 45819 Summary: Symantec Eraser Control Driver 'eeCtrl64.sys' (Norton 360) fails in driver entry point due to 'ntoskrnl.exe.ExInitializeResourceLite' stub (needs STATUS_SUCCESS) Product: Wine Version: 3.15 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 45800
The driver fails in entry point:
--- snip --- $ WINEDEBUG=+seh,+relay,+ntoskrnl wineboot >>log.txt 2>&1 ... 0016:trace:ntoskrnl:load_driver_module L"C:\Program Files (x86)\Common Files\Symantec Shared\EENGINE\eeCtrl64.sys": relocating from 0x10000 to 0x460000 ... 0016:Call driver init 0x4c6118 (obj=0x26d70,str=L"\Registry\Machine\System\CurrentControlSet\Services\eeCtrl") ... 0016:Call ntoskrnl.exe.ExInitializeResourceLite(0002c3b8) ret=00479191 0016:fixme:ntoskrnl:ExInitializeResourceLite stub: 0x2c3b8 0016:Ret ntoskrnl.exe.ExInitializeResourceLite() retval=c0000002 ret=00479191 0016:Call ntoskrnl.exe.RtlInitUnicodeString(0033f560,00466698 L"\??\EraserCtrlDrv") ret=00471cf6 0016:Call ntdll.RtlInitUnicodeString(0033f560,00466698 L"\??\EraserCtrlDrv") ret=7bcfe083 0016:Ret ntdll.RtlInitUnicodeString() retval=0033f560 ret=7bcfe083 0016:Ret ntoskrnl.exe.RtlInitUnicodeString() retval=0033f560 ret=00471cf6 0016:Call ntoskrnl.exe.IoDeleteSymbolicLink(0033f560) ret=00471d01 0016:Call ntdll.NtOpenSymbolicLinkObject(0033f3f0,00000000,0033f3c0) ret=7f321bd86b6c 0016:Ret ntdll.NtOpenSymbolicLinkObject() retval=00000000 ret=7f321bd86b6c 0016:Call ntdll.NtClose(0000003c) ret=7f321bd86c22 0016:Ret ntdll.NtClose() retval=00000000 ret=7f321bd86c22 0016:Ret ntoskrnl.exe.IoDeleteSymbolicLink() retval=00000000 ret=00471d01 0016:Call ntoskrnl.exe.IoWMIRegistrationControl(004c5a90,80000002) ret=00471d66 0016:fixme:ntoskrnl:IoWMIRegistrationControl (0x4c5a90 2147483650) stub 0016:Ret ntoskrnl.exe.IoWMIRegistrationControl() retval=00000000 ret=00471d66 0016:Call ntoskrnl.exe.IoDeleteDevice(0002fa30) ret=00471d77 0016:trace:ntoskrnl:IoDeleteDevice 0x2fa30 ... 0016:Ret driver init 0x4c6118 (obj=0x26d70,str=L"\Registry\Machine\System\CurrentControlSet\Services\eeCtrl") retval=c0000002 ... --- snip ---
That's due to 'ntoskrnl.exe.ExInitializeResourceLite' stub.
0xc0000002 -> STATUS_NOT_IMPLEMENTED
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/ntoskrnl.exe/ntoskrnl...
--- snip --- 2002 */ 2003 NTSTATUS WINAPI ExInitializeResourceLite(PERESOURCE Resource) 2004 { 2005 FIXME( "stub: %p\n", Resource ); 2006 return STATUS_NOT_IMPLEMENTED; 2007 } --- snip ---
Turning this into a semi-stub, that is zero-initialize the caller supplied struct and returning 'STATUS_SUCCESS' is enough.
$ sha1sum N360-TW-21.1.0-EN.exe aa05ccf9668e166ef28923d451f1c2ecad6f75f1 N360-TW-21.1.0-EN.exe
$ du -sh N360-TW-21.1.0-EN.exe 202M N360-TW-21.1.0-EN.exe
$ wine --version wine-3.15-150-gb29cdbd5f2
Regards