Поделиться через


структура DXGKARG_COLLECTDIAGNOSTICINFO (dispmprt.h)

Используется функцией обратного вызова DXGKDDI_COLLECTDIAGNOSTICINFO для сбора сведений о частном драйвере по различным причинам.

Например, операционная система вызовет функцию обратного вызова DXGKDDI_COLLECTDIAGNOSTICINFO, когда требуются диагностические сведения, предоставляя тип запрашиваемой информации (DXGK_DIAGNOSTICINFO_TYPE). Драйвер должен собрать все личные сведения, чтобы изучить проблему и отправить ее в ОС.

Синтаксис

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;

Члены

[in, hAdapter

Дескриптор для блока контекста, связанного с видеоадаптером.

До WDDM 2.6 функция DxgkDdiAddDevice драйвера мини-порта дисплея предоставляла этот дескриптор подсистеме графического ядра DirectX. Этот параметр является необязательным и может иметь значение NULL, если драйверу не удалось предоставить дескриптор операционной системе.

[in] Type

Значение перечисления DXGK_DIAGNOSTICINFO_TYPE , указывающее тип сведений, которые необходимо собрать драйверу.

[out] BucketingString[DXGK_DUMP_BUCKETING_BUFFER_SIZE]

Буфер фиксированного размера, предоставленный для строки, которую драйвер должен использовать для определения проблемы в целях сегментирования. Эта строка должна быть согласованной между версиями драйверов для одной и той же проблемы, поэтому она не должна содержать такие элементы, как ссылки на источники, версии драйверов или конкретные сведения экземпляра, такие как номера ограждения или целевые идентификаторы. Он может содержать такие сведения, как идентификатор внутреннего подкомпонента, который завершился сбоем, или имя модуля, например mismatched_driver_ihvxseries.sys. Допустимые коды: 0x21-0x7E и вместо пробела () следует использовать символ подчеркивания (0x5f0x20).

[out, DescriptionString[DXGK_DUMP_DESCRIPTION_BUFFER_SIZE]

Буфер фиксированного размера, предоставленный для строки, которую драйвер должен использовать для описания конкретных сведений экземпляра, которые не используются для сегментирования, но могут использоваться для предоставления дополнительных сведений о конкретной проблеме, например mismatched_driver_versions_kmd_10.22.1111.1121,_ihvxseries:10.22.1111.1122. Допустимые коды: 0x21-0x7E и вместо пробела () следует использовать символ подчеркивания (0x5f0x20).

[out, pReserved

Указатель на VOID в неименованном союзе, зарезервированный в качестве заполнителя для указателя на аргумент типа, который ОС может предоставить для некоторых типов. Это значение равно NULL для типов , которые не требуют дополнительных сведений.

[in] BufferSizeIn

Переменная, которая предоставляет размер буфера, выделенного ОС ( в байтах). Для параметра Type значение DXGK_DI_ADDDEVICE и DXGK_DI_STARTDEVICE размер будет около 0x80000.

[out] BufferSizeOut

Переменная, которую драйвер должен обновить, указав фактический размер, заполненный личными данными. Если частные данные не предоставлены, драйвер должен присвоить переменной значение 0.

[out] pBuffer

Указатель на буфер, получающий данные частного драйвера.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1903
Верхняя часть dispmprt.h

См. также раздел

DXGK_DIAGNOSTICINFO_TYPE

DXGKDDI_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiGetDisplayStateIntrusive

DxgkDdiGetDisplayStateNonIntrusive