[Bug 27400] New: SecuROM 4.x/5.x helper driver needs ntoskrnl.exe.IoSetThreadHardErrorMode stub
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Jun 5 14:44:10 CDT 2011
http://bugs.winehq.org/show_bug.cgi?id=27400
Summary: SecuROM 4.x/5.x helper driver needs
ntoskrnl.exe.IoSetThreadHardErrorMode stub
Product: Wine
Version: 1.3.21
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntoskrnl
AssignedTo: wine-bugs at winehq.org
ReportedBy: focht at gmx.net
Hello,
the driver is part of SecuROM 4.x/5.x and dynamically extracted and loaded if
"\Device\CdRom0" is present (cdrom0 -> /dev/cdrom via manually created symlink
in dosdevices).
The driver isn't particularly useful as of now but it shouldn't crash.
--- snip ---
...
0021:Call KERNEL32.CreateFileA(0032ce0c
"C:\\users\\focht\\Temp\\pfsvgae.sys",40000000,00000000,00000000,00000002,00000000,00000000)
ret=00486114
0021:Ret KERNEL32.CreateFileA() retval=00000080 ret=00486114
...
0021:Call advapi32.CreateServiceA(00161bc8,0032d00c "pfsvgae",0032d00c
"pfsvgae",000f01ff,00000001,00000003,00000001,0032ce0c
"C:\\users\\focht\\Temp\\pfsvgae.sys",00000000,00000000,00000000,00000000,00000000)
ret=00487aae
...
fixme:ntoskrnl:IoGetDeviceObjectPointer stub: L"\\Device\\CdRom0" 0 0x53e20c
0x53e1e8
fixme:ntoskrnl:IoRegisterDriverReinitialization stub: 0x787a54a0 0x541a6f (nil)
fixme:ntoskrnl:IoGetDeviceObjectPointer stub: L"\\Device\\LanmanRedirector" 1
0x53e21c 0x53e218
fixme:ntoskrnl:IoGetDeviceObjectPointer stub: L"\\Device\\NetWareRedirector" 1
0x53e21c 0x53e218
wine: Call from 0x7b838b9b to unimplemented function
ntoskrnl.exe.IoSetThreadHardErrorMode, aborting
wine: Unimplemented function ntoskrnl.exe.IoSetThreadHardErrorMode called at
address 0x7b838b9b (thread 0028), starting debugger...
wine: Call from 0x7b838b9b to unimplemented function
ntoskrnl.exe.IoSetThreadHardErrorMode, aborting
--- snip ---
MSDN: http://msdn.microsoft.com/en-us/library/ff550342.aspx
The driver uses the IoSetThreadHardErrorMode API as follows:
--- snip pseudo code ---
old_harderror = IoSetThreadHardErrorMode( FALSE);
// device: L"\\DosDevices\\C:\\" ... L"\\DosDevices\\D:\\" ...
ZwCreateFile( ... device ... )
IoSetThreadHardErrorMode( old_harderror)
--- snip pseudo code ---
This is to prevent a message box like "There is no disk in the drive. Please
insert a disk into drive x" or "Windows cannot access the specified device,
path or file." from being shown when the device link is not present or no cdrom
is inserted.
The driver iterates through all possible drive letters regardless if applicable
or not.
The return value doesn't really matter for now.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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