https://bugs.winehq.org/show_bug.cgi?id=45664
Bug ID: 45664 Summary: 64-bit BattlEye 'BEDaisy' kernel service fails in driver entry point due to missing 'ntoskrnl.exe.PsGetProcessWow64Process' Product: Wine Version: 3.14 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,
as it says. Only applies to 64-bit version of the driver.
--- snip --- $ pwd /home/focht/.wine/drive_c/users/Public/Daybreak Game Company/Installed Games/PlanetSide 2
$ WINEDEBUG=+seh,+relay,+ntoskrnl wine ./PlanetSide2_x64_BE.exe >>log.txt 2>&1 ... 004b:Call ntoskrnl.exe.IoCreateDriver(0055fa90,7f087b40a927) ret=7f087b40b5ec 004b:trace:ntoskrnl:IoCreateDriver (L"\Driver\BEDaisy", 0x7f087b40a927) ... 004b:Call KERNEL32.LoadLibraryW(000271c0 L"C:\Program Files (x86)\Common Files\BattlEye\BEDaisy.sys") ret=7f087b409cea 004b:Ret KERNEL32.LoadLibraryW() retval=140000000 ret=7f087b409cea ... 004b:Call driver init 0x140011000 (obj=0x26ee0,str=L"\Registry\Machine\System\CurrentControlSet\Services\BEDaisy") ... 004b:Call ntoskrnl.exe.MmGetSystemRoutineAddress(0055dfb0) ret=14024a0f8 ... 004b:Call KERNEL32.GetModuleHandleW(7f086d05f6f0 L"ntoskrnl.exe") ret=7f086d0517cc 004b:Ret KERNEL32.GetModuleHandleW() retval=7f086d030000 ret=7f086d0517cc 004b:Call KERNEL32.GetProcAddress(7f086d030000,000271c0 "PsGetProcessWow64Process") ret=7f086d0517ea 004b:Ret KERNEL32.GetProcAddress() retval=00000000 ret=7f086d0517ea 004b:Call KERNEL32.GetModuleHandleW(7f086d05f710 L"hal.dll") ret=7f086d05180d 004b:Ret KERNEL32.GetModuleHandleW() retval=00000000 ret=7f086d05180d ... 004b:fixme:ntoskrnl:MmGetSystemRoutineAddress L"PsGetProcessWow64Process" not found 004b:Ret ntoskrnl.exe.MmGetSystemRoutineAddress() retval=00000000 ret=14024a0f8 004b:Ret driver init 0x140011000 (obj=0x26ee0,str=L"\Registry\Machine\System\CurrentControlSet\Services\BEDaisy") retval=c0000001 ... 004b:Ret ntoskrnl.exe.IoCreateDriver() retval=c0000001 ret=7f087b40b5ec 004b:err:winedevice:async_create_driver failed to create driver L"BEDaisy": c0000001 --- snip ---
https://github.com/DarthTon/Blackbone/blob/master/src/BlackBoneDrv/Imports.h...
--- snip --- NTKERNELAPI PVOID NTAPI PsGetProcessWow64Process( IN PEPROCESS Process ); --- snip ---
It's only imported, not called (yet). Adding stub line to .spec should be fine. Although it wouldn't harm if a real stub is added that just dumps the parameter and returns NULL.
$ sha1sum PS2_setup.exe a49fec77dfe38ba6b6871aa832a50b7b10d48692 PS2_setup.exe
$ du -sh PS2_setup.exe 38M PS2_setup.exe
$ wine --version wine-3.14
Regards