DXGKARG_COLLECTDIAGNOSTICINFO structure (dispmprt.h)

Used by the DXGKDDI_COLLECTDIAGNOSTICINFO callback function to collect private driver information for a variety of reasons.

For example, the OS will call the DXGKDDI_COLLECTDIAGNOSTICINFO callback function when diagnostic information is needed, while providing the type of information being requested (DXGK_DIAGNOSTICINFO_TYPE). The driver should collect all private information to investigate the issue and submit it to the OS.

Syntax

typedef struct _DXGKARG_COLLECTDIAGNOSTICINFO {
  [in, optional]  HANDLE                   hAdapter;
  [in]            DXGK_DIAGNOSTICINFO_TYPE Type;
                  CHAR                     BucketingString[DXGK_DUMP_BUCKETING_BUFFER_SIZE];
                  CHAR                     DescriptionString[DXGK_DUMP_DESCRIPTION_BUFFER_SIZE];
  union {
    [out, optional] PVOID pReserved;
  };
  [in]            UINT                     BufferSizeIn;
  [out]           UINT                     BufferSizeOut;
  [out]           PVOID                    pBuffer;
} DXGKARG_COLLECTDIAGNOSTICINFO;

Members

[in, hAdapter

A handle to a context block associated with a display adapter.

Prior to WDDM 2.6, the display miniport driver's DxgkDdiAddDevice function provided this handle to the DirectX graphics kernel subsystem. This parameter is optional and can be NULL if the driver failed to provide the handle to the OS.

[in] Type

A DXGK_DIAGNOSTICINFO_TYPE enumeration value that indicates the type of information the driver needs to collect.

[out] BucketingString[DXGK_DUMP_BUCKETING_BUFFER_SIZE]

A fixed size buffer provided for a string that the driver should use to identify the issue for bucketing purposes. This string should be consistent between driver versions for the same issue so it should not contain elements such as source references, driver versions, or instance specific details like fence numbers or target ids. It may contain information such as an identifier of the internal sub-component which failed, or the name of a module, for example mismatched_driver_ihvxseries.sys. The valid codes are 0x21-0x7E and the underscore (0x5f) should be used instead of the space (0x20).

[out, DescriptionString[DXGK_DUMP_DESCRIPTION_BUFFER_SIZE]

A fixed size buffer provided for a string that the driver should use to describe instance specific details which are not used for bucketing, but may be used to give more details about a specific issue, for example mismatched_driver_versions_kmd_10.22.1111.1121,_ihvxseries:10.22.1111.1122. The valid codes are 0x21-0x7E and the underscore (0x5f) should be used instead of the space (0x20).

[out, pReserved

A pointer to VOID in an unnamed union that is reserved as a placeholder for a pointer to a type-specific argument the OS might supply for some Types. This value is NULL for Types which don’t require any extended information.

[in] BufferSizeIn

A variable that provides the size, in bytes, of the OS allocated buffer. For Type value of DXGK_DI_ADDDEVICE and DXGK_DI_STARTDEVICE the size will be around 0x80000.

[out] BufferSizeOut

A variable that the driver should update with an actual size filled with its private data. If no private data is provided, the driver should assign 0 to the variable.

[out] pBuffer

A pointer to a buffer that receives the private driver data.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1903
Header dispmprt.h

See also

DXGK_DIAGNOSTICINFO_TYPE

DXGKDDI_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiGetDisplayStateIntrusive

DxgkDdiGetDisplayStateNonIntrusive