D3DADAPTER_IDENTIFIER9 structure

Contains information identifying the adapter.

Syntax

typedef struct D3DADAPTER_IDENTIFIER9 {
  char          Driver[MAX_DEVICE_IDENTIFIER_STRING];
  char          Description[MAX_DEVICE_IDENTIFIER_STRING];
  char          DeviceName[32];
#ifdef _WIN32
  LARGE_INTEGER DriverVersion;
#else
  DWORD         DriverVersionLowPart;
  DWORD         DriverVersionHighPart;
#endif
  DWORD         VendorId;
  DWORD         DeviceId;
  DWORD         SubSysId;
  DWORD         Revision;
  GUID          DeviceIdentifier;
  DWORD         WHQLLevel;
} D3DADAPTER_IDENTIFIER9, *LPD3DADAPTER_IDENTIFIER9;

Members

Driver

Type: char

Used for presentation to the user. This should not be used to identify particular drivers, because many different strings might be associated with the same device and driver from different vendors.

Description

Type: char

Used for presentation to the user.

DeviceName

Type: char

Device name for GDI.

DriverVersion

Type: LARGE_INTEGER

Identify the version of the Direct3D driver. It is legal to do less than and greater than comparisons on the 64-bit signed integer value. However, exercise caution if you use this element to identify problematic drivers. Instead, you should use DeviceIdentifier. See Remarks.

DriverVersionLowPart

Type: DWORD

Identify the version of the Direct3D driver. It is legal to do < and > comparisons on the 64-bit signed integer value. However, exercise caution if you use this element to identify problematic drivers. Instead, you should use DeviceIdentifier. See Remarks.

DriverVersionHighPart

Type: DWORD

Identify the version of the Direct3D driver. It is legal to do < and > comparisons on the 64-bit signed integer value. However, exercise caution if you use this element to identify problematic drivers. Instead, you should use DeviceIdentifier. See Remarks.

VendorId

Type: DWORD

Can be used to help identify a particular chip set. Query this member to identify the manufacturer. The value can be zero if unknown.

DeviceId

Type: DWORD

Can be used to help identify a particular chip set. Query this member to identify the type of chip set. The value can be zero if unknown.

SubSysId

Type: DWORD

Can be used to help identify a particular chip set. Query this member to identify the subsystem, typically the particular board. The value can be zero if unknown.

Revision

Type: DWORD

Can be used to help identify a particular chip set. Query this member to identify the revision level of the chip set. The value can be zero if unknown.

DeviceIdentifier

Type: GUID

Can be queried to check changes in the driver and chip set. This GUID is a unique identifier for the driver and chip set pair. Query this member to track changes to the driver and chip set in order to generate a new profile for the graphics subsystem. DeviceIdentifier can also be used to identify particular problematic drivers.

WHQLLevel

Type: DWORD

Used to determine the Windows Hardware Quality Labs (WHQL) validation level for this driver and device pair. The DWORD is a packed date structure defining the date of the release of the most recent WHQL test passed by the driver. It is legal to perform < and > operations on this value. The following illustrates the date format.

Bits Description
31-16 The year, a decimal number from 1999 upwards.
15-8 The month, a decimal number from 1 to 12.
7-0 The day, a decimal number from 1 to 31.

 

The following values are also used.

Value Description
0 Not certified.
1 WHQL validated, but no date information is available.

 

Differences between Direct3D 9 and Direct3D 9Ex:

For Direct3D9Ex running on Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2 (or more current operating system), IDirect3D9::GetAdapterIdentifier returns 1 for the WHQL level without checking the status of the driver.

Remarks

The following pseudocode example illustrates the version format encoded in the DriverVersion, DriverVersionLowPart, and DriverVersionHighPart members.

Product = HIWORD(DriverVersion.HighPart)
Version = LOWORD(DriverVersion.HighPart)
SubVersion = HIWORD(DriverVersion.LowPart)
Build = LOWORD(DriverVersion.LowPart)

See the Platform SDK for more information about the HIWORD macro, the LOWORD macro, and the LARGE_INTEGER structure.

MAX_DEVICE_IDENTIFIER_STRING is a constant with the following definition.

#define MAX_DEVICE_IDENTIFIER_STRING        512

The VendorId, DeviceId, SubSysId, and Revision members can be used in tandem to identify particular chip sets. However, use these members with caution.

Requirements

Requirement Value
Header
D3D9Types.h

See also

Direct3D Structures