Author: greatlrd Date: Sun Jun 10 07:33:17 2007 New Revision: 27099
URL: http://svn.reactos.org/svn/reactos?rev=27099&view=rev Log: Only dwWHQLLevel are left todo in GetDeviceIdentifier
Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c
Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Ddraw/ddr... ============================================================================== --- trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c (original) +++ trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c Sun Jun 10 07:33:17 2007 @@ -463,7 +463,7 @@ DWORD strSize = MAX_DDDEVICEID_STRING; char *pdest; char* pcCnvEnd; - long data; + long *lpdata;
LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT) iface;
@@ -542,18 +542,23 @@ pdest = strstr(DisplayDeviceA.DeviceID,"VEN_"); pDDDI->dwVendorId =strtol ( &pdest[4], &pcCnvEnd, 16);
- /* FIXME pDDDI->guidDeviceIdentifier, pDDDI->dwWHQLLevel */ - + /* Count out the guidDeviceIdentifier */ memcpy(&pDDDI->guidDeviceIdentifier, &CLSID_DirectDraw,sizeof(GUID));
pDDDI->guidDeviceIdentifier.Data1 = pDDDI->guidDeviceIdentifier.Data1 ^ pDDDI->dwVendorId;
- data = (pDDDI->guidDeviceIdentifier.Data3 <<16) | pDDDI->guidDeviceIdentifier.Data2; - data = data ^ pDDDI->dwDeviceId; - pDDDI->guidDeviceIdentifier.Data2 = data & 0xFFFF; - pDDDI->guidDeviceIdentifier.Data3 = (data>>16) & 0xFFFF; - - + lpdata = (long *)&pDDDI->guidDeviceIdentifier.Data2; + *lpdata = *lpdata ^ pDDDI->dwDeviceId; + + lpdata = (long *)&pDDDI->guidDeviceIdentifier.Data4; + *lpdata = *lpdata ^ pDDDI->dwSubSysId; + *lpdata = *lpdata ^ pDDDI->liDriverVersion.LowPart; + + lpdata = (long *)&pDDDI->guidDeviceIdentifier.Data4[4]; + *lpdata = *lpdata ^ pDDDI->dwRevision; + *lpdata = *lpdata ^ pDDDI->liDriverVersion.HighPart; + + /* FIXME pDDDI->dwWHQLLevel */ pDDDI->dwWHQLLevel = 0; retVal = DD_OK; }