Registering Hardware Information

To display useful information to the user and for assistance in debugging, a display miniport driver must set certain hardware information in the registry. A display miniport driver must set a chip type, digital-to-analog converter (DAC) type, memory size (of the adapter), and a string to identify the adapter. This information is shown by the Display application in Control Panel. Typically, the driver sets this information in its DxgkDdiAddDevice function.

To set this information, the driver:

  1. Calls the IoOpenDeviceRegistryKey function to open and obtain a handle to a software key for storing driver-specific information. In this call, the driver specifies the PLUGPLAY_REGKEY_DRIVER flag in the DevInstKeyType parameter and the KEY_SET_VALUE, KEY_WRITE, or KEY_ALL_ACCESS value in the DesiredAccess parameter.

  2. Calls the ZwSetValueKey function several times to set each type of hardware information. In each call, the driver specifies, in the KeyHandle parameter, the software-key handle that was obtained from IoOpenDeviceRegistryKey.

    The following table describes the information that the driver must register and provides details for the ValueName and Data parameters of ZwSetValueKey:

    Information for entry ValueName parameter Data parameter

    Chip type

    HardwareInformation.ChipType

    Null-terminated string that contains the chip name

    DAC type

    HardwareInformation.DacType

    Null-terminated string that contains the DAC name or identifier (ID)

    Memory size

    HardwareInformation.MemorySize

    ULONG that contains, in megabytes, the amount of video memory on the adapter

    Adapter ID

    HardwareInformation.AdapterString

    Null-terminated string that contains the name of the adapter

    BIOS

    HardwareInformation.BiosString

    Null-terminated string that contains information about the BIOS