[Bug 10018] Adobe Photoshop CS2 can't activate
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Oct 31 13:55:33 CDT 2007
http://bugs.winehq.org/show_bug.cgi?id=10018
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
--- Comment #12 from Anastasius Focht <focht at gmx.net> 2007-10-31 13:55:32 ---
Hello,
I just had a live IRC "debug session" with an Adobe Photoshop CS2 owner -
thanks @dergringo for having the patience to follow my instructions ;-).
The activation process fails because CS2 tries to query S.M.A.R.T capabilities
of first harddisk and the appropriate device ioctls are not implemented.
To get to this point you have either have to give raw access to
harddisk/partition or setup a fake device.
I recommend the latter. See http://bugs.winehq.org/show_bug.cgi?id=8298 how to
do this (comment #12 and following)
Basically setup fake data, mount via loop device and symlink "ln -s /dev/loop0
$(WINEPREFIX)/dosdevices/c::"
Relevant log:
--- snip ---
0053:Call KERNEL32.CreateFileA(7d942994
"\\\\.\\c:",c0000000,00000003,00000000,00000003,00000000,00000000) ret=0040398a
0053:Ret KERNEL32.CreateFileA() retval=0000007c ret=0040398a
0053:Call
KERNEL32.DeviceIoControl(0000007c,00074080,00000000,00000000,7d942958,00000018,7d942974,00000000)
ret=00403782
0053:fixme:cdrom:CDROM_DeviceIoControl Unsupported IOCTL 74080 (type=7 access=1
func=20 meth=0)
0053:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=00403782
0053:Call
KERNEL32.DeviceIoControl(0000007c,0004100c,7d942974,00000006,7d942778,000000df,7d942968,00000000)
ret=004035f7
0053:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=004035f7
0053:Call KERNEL32.CloseHandle(0000007c) ret=004039ba
0053:Ret KERNEL32.CloseHandle() retval=00000001 ret=004039ba
--- snip ---
Looking at 0x74080 in "include/winioctl.h":
--- snip ---
190 #define IOCTL_DISK_CONTROLLER_NUMBER CTL_CODE(IOCTL_DISK_BASE, 0x0011,
METHOD_BUFFERED, FILE_ANY_ACCESS)
191 #define SMART_GET_VERSION CTL_CODE(IOCTL_DISK_BASE, 0x0020,
METHOD_BUFFERED, FILE_READ_ACCESS)
192 #define SMART_SEND_DRIVE_COMMAND CTL_CODE(IOCTL_DISK_BASE, 0x0021,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
193 #define SMART_RCV_DRIVE_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0022,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
--- snip ---
Some "basic" S.M.A.R.T ioctls have to be implemented/stubbed to get the
activation id based apps/games to work.
I know this stuff from copy protections, hell even PunkBuster uses parts of
this "id" info for their infamous "hardware" bans.
The standard way is to query drive info using IOCTL_STORAGE_QUERY_PROPERTY.
This gives you volume serial number and the like.
The second way is to query the drive SMART capabilities.
Usually the first check is if the drive supports SMART by calling
SMART_GET_VERSION.
If succeeded, SMART is usually enabled with SMART_SEND_DRIVE_COMMAND (code B0)
and then the data gets queried with SMART_RCV_DRIVE_DATA.
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