DirectX SDK

DDDEVICEIDENTIFIER2

The DDDEVICEIDENTIFIER2 structure is passed to the IDirectDraw7::GetDeviceIdentifier method to obtain information about a device.

typedef struct tagDDDEVICEIDENTIFIER2 {
    char    szDriver[MAX_DDDEVICEID_STRING];
    char    szDescription[MAX_DDDEVICEID_STRING];
    LARGE_INTEGER  liDriverVersion;
    DWORD   dwVendorId;
    DWORD   dwDeviceId;
    DWORD   dwSubSysId;
    DWORD   dwRevision;
    GUID    guidDeviceIdentifier;
    DWORD   dwWHQLLevel;
} DDDEVICEIDENTIFIER2, * LPDDDEVICEIDENTIFIER2;

Members

szDriver
Name of the driver.
szDescription
Description of the driver.
liDriverVersion
Version of the driver. It is legal to do less than and greater than comparisons on all 64 bits. Caution should be exercised if you use this element to identify problematic drivers. Use guidDeviceIdentifier for this purpose.

The data takes the following form:

wProduct = HIWORD(liDriverVersion.HighPart)
wVersion = LOWORD(liDriverVersion.HighPart)
wSubVersion = HIWORD(liDriverVersion.LowPart)
wBuild = LOWORD(liDriverVersion.LowPart)
dwVendorId
Identifier of the manufacturer. Can be 0 if unknown.
dwDeviceId
Identifier of the type of chipset. Can be 0 if unknown.
dwSubSysId
Identifier of the subsystem. Typically, this means the particular board. Can be 0 if unknown.
dwRevision
Identifier of the revision level of the chipset. Can be 0 if unknown.
guidDeviceIdentifier
Unique identifier for the driver/chipset pair. Use this value if you want to track changes to the driver or chipset to reprofile the graphics subsystem. It can also be used to identify particular problematic drivers.
dwWHQLLevel
The Windows Hardware Quality Lab (WHQL) certification level for the device/driver pair.

Remarks

The values in szDriver and szDescription are for presentation to the user only. They should not be used to identify particular drivers because different strings might be associated with the same device, or the same driver from different vendors might be described differently.

The dwVendorId, dwDeviceId, dwSubSysId, and dwRevision members can be used to identify particular chipsets, but use extreme caution.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in ddraw.h.