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


функция обратного вызова DXGKDDI_COLLECTDBGINFO2 (d3dkmddi.h)

Функция DxgkDdiCollectDbgInfo2 выводит сведения о драйвере для отчета об отладке.

Синтаксис

DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;

NTSTATUS DxgkddiCollectdbginfo2(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}

Параметры

hAdapter

[in] Дескриптор для блока контекста, связанного с видеоадаптером. Мини-порт отображения (KMD) ранее предоставлял этот дескриптор dxgkrnl в выходном параметре MiniportDeviceContextобъекта DxgkDdiAddDevice.

pCollectDbgInfo2

[вход/выход] Указатель на структуру DXGKARG_COLLECTDBGINFO2 , содержащую сведения для отчета об отладке.

Возвращаемое значение

DxgkDdiCollectDbgInfo2 возвращает одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS DxgkDdiCollectDbgInfo2 успешно выводит сведения о драйвере для отчета об отладке; ИЛИ ОС проигнорировала содержимое буфера, на который указывает pBuffer , и не добавила в отчет отладки сведения из DxgkDdiCollectDbgInfo2 .
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo2 не удалось выделить память, необходимую для ее завершения.
STATUS_UNSUCCESSFUL Другая ошибка не позволила драйверу собрать допустимые отладочные сведения.

Комментарии

Dxgkrnl вызывает функцию DXGkDdiCollectDbgInfo2 в KMD, когда ОПЕРАЦИОННая система создает отчет об отладке, связанный с драйвером. DxgkDdiCollectDbgInfo2 может вызываться непосредственно перед работой обнаружения и восстановления времени ожидания (TDR) или непосредственно перед проверкой ошибок ОС. Несмотря на то, что DxgkDdiCollectDbgInfo2 должен возвращать как можно быстрее, максимальный объем времени, определяемый системой, драйвер не может тратить на выполнение этой функции.

DxgkDdiCollectDbgInfo2 получает более подробные сведения о первопричине TDR, чем DxgkDdiCollectDbgInfo . KMD может сохранить состояние, относящееся к той части GPU, которая отвечает за TDR.

  • Драйвер WDDM 3.2 не требуется для реализации DxgkddiCollectDbgInfo2. В этом случае ОС вызывает DxgkddiCollectDbgInfo.

KMD должен собирать отладочную информацию. При вызове DxgkDdiCollectDbgInfo2 драйвер получает код проверка ошибок в pCollectDbgInfo2-Reason>, который указывает тип сведений, необходимых для отчета об отладке. Драйвер копирует необходимые отладочные сведения в буфер, на который указывает pCollectDbgInfo2-pBuffer>. Максимальное число байтов сведений, которые может скопировать драйвер, указывается в pCollectDbgInfo2-BufferSize>.

DxgkDdiCollectDbgInfo обычно выполняется на неопределенном IRQL. Однако если для параметра pCollectDbgInfo2-Reason> задано значение VIDEO_TDR_TIMEOUT_DETECTED (для указания сброса на уровне адаптера) или VIDEO_ENGINE_TIMEOUT_DETECTED (доступно, начиная с Windows 8 для указания сброса одного или нескольких узлов в физическом адаптере), драйвер должен убедиться, что DxgkDdiCollectDbgInfo2 доступен для страниц, выполняется на irQL = PASSIVE_LEVEL и поддерживает синхронизацию нулевого уровня.

Дополнительные сведения см. в статье Об улучшениях отладки TDR.

Требования

Требование Значение
Минимальная версия клиента Windows 11 версии 24H2 (WDDM 3.2)
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL (см. примечания)

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

DXGKARG_COLLECTDBGINFO2

DxgkDdiCollectDbgInfo