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


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

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

Синтаксис

DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;

NTSTATUS DxgkddiCollectdbginfo(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] IN_CONST_PDXGKARG_COLLECTDBGINFO pCollectDbgInfo
)
{...}

Параметры

[in] hAdapter

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

[in/out] pCollectDbgInfo

Указатель на структуру DXGKARG_COLLECTDBGINFO , содержащую сведения для отчета об отладке.

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

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

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

Комментарии

Dxgkrnl вызывает функцию DXGkDdiCollectDbgInfo KMD, когда ОС создает отчет об отладке, связанный с драйвером. DxgkDdiCollectDbgInfo может вызываться непосредственно перед работой обнаружения и восстановления времени ожидания (TDR) или непосредственно перед проверками ошибок ОС. Хотя DxgkDdiCollectDbgInfo должен возвращать как можно быстрее, не существует установленного системой максимального времени, которое драйвер может потратить на эту функцию.

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

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

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Персональный компьютер
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL (см. примечания)

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

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout