https://bugs.winehq.org/show_bug.cgi?id=57588
Bug ID: 57588 Summary: Guardant USB key drivers: grdkey.sys crashes Product: Wine Version: 10.0-rc3 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntoskrnl Assignee: wine-bugs@winehq.org Reporter: amorozov@etersoft.ru Distribution: ---
Created attachment 77697 --> https://bugs.winehq.org/attachment.cgi?id=77697 Log with WINEDEBUG=+ntoskrnl,+plugplay and winedbg output
I installed Guardant USB key drivers 7.0.224 from here: https://www.guardant.com/support/users/download/2238/ with WoW64 Wine build.
$ md5sum GrdDrivers.exe 731d388d2ee4c1a4f45d655e4b8c9163 GrdDrivers.exe
After installation windows/system32/drivers/grdkey.sys appears. And it crashes at Wine start: wine: Unhandled page fault on read access to 0000000000000008 at address 00006FFFFC8A295B (thread 00f0), starting debugger...
In AddDevice handler grdkey.sys calls IoOpenDeviceRegistryKey. This results in calling get_device_instance_id -> get_device_id and sending IRP_MJ_PNP/IRP_MN_QUERY_ID with BusQueryDeviceID to the driver which calls IofCallDriver(NULL, ....) and crashes.
The crash can be avoided with commenting out this line: device = IoGetAttachedDevice( device ); in get_device_id function in dlls/ntoskrnl.exe/pnp.c
But I assume that the correct fix should be in avoiding to send IRPs from IoOpenDeviceRegistryKey. MSDN says that IRP_MN_QUERY_ID is sent before loading driver and calling AddDevice: https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/adding-a-p...
https://bugs.winehq.org/show_bug.cgi?id=57588
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, hardware