[Bug 29669] New: Dragon Age: Origins DVD authenticity checks fail (descriptor structures returned by DVD_READ_STRUCT need a descriptor header prepended)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Jan 21 06:29:47 CST 2012
http://bugs.winehq.org/show_bug.cgi?id=29669
Bug #: 29669
Summary: Dragon Age: Origins DVD authenticity checks fail
(descriptor structures returned by DVD_READ_STRUCT
need a descriptor header prepended)
Product: Wine
Version: 1.3.37
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntdll
AssignedTo: wine-bugs at winehq.org
ReportedBy: focht at gmx.net
Classification: Unclassified
Hello,
continuation of bug 29667
Now that DVD_LAYER_DESCRIPTOR data is properly verified, the game loader
retrieves DvdManufacturerDescriptor using IOCTL_DVD_READ_STRUCTURE.
The interesting part is that the game loader copies the returned buffer bytes
starting from offset 4 (throwing the first _four_ bytes away).
Remembering these four bytes, I went back here:
http://source.winehq.org/git/wine.git/blob/f082eac97c3ec71de58eea85bb4de5a12b19f13f:/dlls/ntdll/cdrom.c#l213
--- quote ---
/* The documented format of DVD_LAYER_DESCRIPTOR is wrong. Even the format in
the
* DDK's header is wrong. There are four bytes at the start defined by
* MMC-5. The first two are the size of the structure in big-endian order as
* defined by MMC-5. The other two are reserved.
*/
--- quote ---
Actually all descriptor structures handled by DVD_READ_STRUCTURE have a
DVD_DESCRIPTOR_HEADER prepended - not just DVD_LAYER_DESCRIPTOR.
This forum posts give some useful information:
http://forums.techguy.org/software-development/812384-scsi-read-disc-structure-c.html
--- snip ---
typedef struct
{
USHORT Length; /* bigEndian */
UCHAR Reserved[2];
} DVD_DESCRIPTOR_HEADER, *PDVD_DESCRIPTOR_HEADER;
--- snip ---
Because of the missing DVD_DESCRIPTOR_HEADER, the first four bytes get lost
hence the extraction of specific fields from manufacturer buffer gives wrong
values.
With the DVD_DESCRIPTOR_HEADER in place, all DVD authenticity checks pass and
the game successfully runs using original media.
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