[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