Loading an OpenGL Installable Client Driver

The OpenGL runtime accesses the registry to determine which OpenGL installable client driver (ICD) to load. To load the OpenGL ICD, the OpenGL runtime:

  • Determines the name, version, and flags that are associated with the OpenGL ICD by calling the D3DKMTQueryAdapterInfo function with the KMTQAITYPE_UMOPENGLINFO value set in the Type member of the D3DKMT_QUERYADAPTERINFO structure that the pData parameter points to.

  • Checks the version number of the OpenGL ICD that D3DKMTQueryAdapterInfo returns to validate the version of the OpenGL ICD.

  • Loads the OpenGL ICD by using the name of the OpenGL ICD.

  • Initializes access to the OpenGL ICD's functions.

To locate the name of the OpenGL ICD, D3DKMTQueryAdapterInfo searches the registry in the following key:

HKLM/System/CurrentControlSet/Control/Class/{Adapter GUID}/0000/

This key also contains the names of the Microsoft Direct3D user-mode display drivers. This key contains four registry entries for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista and four entries for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista. The following entries are for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista:

Entry Type Explanation
UserModeDriverName REG_SZ The name of the Direct3D user-mode display driver, which is required for the operation of a Direct3D rendering device regardless of whether the operating system supports an OpenGL ICD.
OpenGLDriverName REG_SZ The name of the OpenGL ICD. For example, if the OpenGL ICD is Mydriver.dll, the value of this entry is Mydriver.dll.
OpenGLVersion REG_DWORD The version number of the OpenGL ICD that the OpenGL runtime uses to validate the version of the OpenGL ICD.
OpenGLFlags REG_DWORD A flag bitmask. Currently, bit 0 (0x00000001) is set for compatibility. When bit 1 (0x00000002) is set, the OpenGL runtime does not call the ICD's finish function before the runtime calls the ICD's swap-buffers function.

The following entries are for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista:

Entry Type Explanation
UserModeDriverNameWow REG_SZ The name of the 32-bit Microsoft Direct3D user-mode display driver for 64-bit Windows Vista.
OpenGLDriverNameWow REG_SZ The name of the 32-bit OpenGL ICD for 64-bit Windows Vista.
OpenGLVersionWow REG_DWORD The version number of the 32-bit OpenGL ICD for 64-bit Windows Vista.
OpenGLFlagsWow REG_DWORD A flag bitmask of the 32-bit OpenGL ICD for 64-bit Windows Vista.