[Bug 7065] Get SecuROM copy-protection working
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Oct 14 05:19:36 CDT 2007
http://bugs.winehq.org/show_bug.cgi?id=7065
--- Comment #36 from Anastasius Focht <focht at gmx.net> 2007-10-14 05:19:35 ---
Hello,
thanks for the log.
--- snip ---
0009:Call
KERNEL32.DeviceIoControl(000000bc,002d1400,0033d6ec,0000000c,0033d4ec,00000200,0033d6fc,00000000)
ret=007e7996
0009:Call
ntdll.NtDeviceIoControlFile(000000bc,00000000,00000000,00000000,0033d400,002d1400,0033d6ec,0000000c,0033d4ec,00000200)
ret=7ee756f0
0009:fixme:cdrom:CDROM_DeviceIoControl Unsupported IOCTL 2d1400 (type=2d
access=0 func=500 meth=0)
0009:Ret ntdll.NtDeviceIoControlFile() retval=c000000d ret=7ee756f0
0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7ee75618
0009:Ret ntdll.RtlNtStatusToDosError() retval=00000057 ret=7ee75618
0009:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=007e7996
--- snip ---
Simple properties query.
See http://bugs.winehq.org/show_bug.cgi?id=9956#c5 for stub implementation.
Though seems harmless if not implemented yet, probably can be ignored.
--- snip ---
0009:Call
KERNEL32.DeviceIoControl(000000bc,0004d014,0091f540,0000002c,0091f540,00000050,0033d474,00000000)
ret=00785d96
0009:Call
ntdll.NtDeviceIoControlFile(000000bc,00000000,00000000,00000000,0033d380,0004d014,0091f540,0000002c,0091f540,00000050)
ret=7ee756f0
0009:Ret ntdll.NtDeviceIoControlFile() retval=00000000 ret=7ee756f0
0009:Ret KERNEL32.DeviceIoControl() retval=00000001 ret=00785d96
--- snip ---
IOCTL: 0x4d014 -> IOCTL_SCSI_PASS_THROUGH_DIRECT
decodes as: device= CONTROLLER (0x4), function=0x405, access=FILE_READ_ACCESS |
FILE_WRITE_ACCESS, method = METHOD_BUFFERED
Seems fine, no need to look at in/out buffers further.
--- snip ---
0009:Call KERNEL32.CreateFileA(0033ca44
"\\\\.\\CdRom0",c0000000,00000003,00000000,00000003,00000000,00000000)
ret=007fea04
...
0009:Ret KERNEL32.CreateFileA() retval=ffffffff ret=007fea04
--- snip ---
Wine doesn't mimic all NT namespace flavors yet.
You could manually create a symlink, something like:
.wine/dosdevices/cdrom0 -> /dev/cdrom
--- snip ---
0009:Call
KERNEL32.DeviceIoControl(000000bc,002d4804,0033d6f0,00000001,00000000,00000000,0033d6f4,00000000)
ret=20001ea2
0009:Call
ntdll.NtDeviceIoControlFile(000000bc,00000000,00000000,00000000,0033d610,002d4804,0033d6f0,00000001,00000000,00000000)
ret=7ee756f0
0009:Ret ntdll.NtDeviceIoControlFile() retval=80000011 ret=7ee756f0
0009:Call ntdll.RtlNtStatusToDosError(80000011) ret=7ee75618
0009:Ret ntdll.RtlNtStatusToDosError() retval=000000aa ret=7ee75618
0009:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=20001ea2
--- snip ---
IOCTL: 0x2d4804 -> IOCTL_STORAGE_MEDIA_REMOVAL
decodes as: device= MASS_STORAGE (0x2d), function=0x201,
access=FILE_READ_ACCESS, method = METHOD_BUFFERED
Tries to lock cdrom drive (door).
Though the returned error code reads "STATUS_DEVICE_BUSY"
CDROM_ControlEjection() -> CDROM_GetStatusCode( .. CDROM_LOCKDOOR, ..) ->
FILE_GetNtStatus(void) -> errno = EBUSY -> return STATUS_DEVICE_BUSY
Maybe multiple programs have opened the device (not only wine), then the
locking request would fail.
Not sure if this is a showstopper.
------
Please try with symlink first (.wine/dosdevices/cdrom0 -> /dev/cdrom) and
report back with new trace log if error persists.
If the error/trace log remains the same = failed ioctl cdrom lock as last
request, try to patch
dlls/ntdll/cdrom.c:CDROM_DeviceIoControl(IOCTL_STORAGE_MEDIA_REMOVAL) just for
testing to return STATUS_SUCCESS (multiple lock requests/lock count is not
handled yet)
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list