функция обратного вызова 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в параметре вывода miniportDeviceContextDxgkDdiAddDevice.
[in/out] pCollectDbgInfo
Указатель на структуру DXGKARG_COLLECTDBGINFO, содержащую сведения для отчета отладки.
Возвращаемое значение
DxgkDdiCollectDbgInfo возвращает одно из следующих значений:
Возвращаемый код | Описание |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo сведения о драйвере успешного вывода для отчета отладки; ИЛИ ОС проигнорировала содержимое в буфере, на который pBuffer указывает и не добавил информацию из DxgkDdiCollectDbgInfo в отчет отладки. |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo не удалось выделить память, необходимую для завершения. |
STATUS_UNSUCCESSFUL | Другая ошибка не позволила драйверу собирать допустимые сведения об отладке. |
Замечания
Dxgkrnl вызывает функцию KMD dxgkDdiCollectDbgInfo всякий раз, когда ОС будет создавать отчет об отладке, связанного с драйвером. DxgkDdiCollectDbgInfo можно вызывать непосредственно перед обнаружением и восстановлением (TDR) или непосредственно перед проверкой ошибок ОС. Хотя DxgkDdiCollectDbgInfo должен возвращаться как можно быстрее, системный максимальный объем времени, который драйвер может тратить в этой функции.
KMD должен собирать сведения об отладке. Когда вызывается DxgkDdiCollectDbgInfo, драйвер получает код проверки ошибок в pCollectDbgInfo->Reason, указывающий тип информации, необходимой для отчета отладки. Драйвер копирует необходимые данные отладки в буфер, на который pCollectDbgInfo-> pBuffer. Максимальное количество байтов информации, которую драйвер может скопировать, задается pCollectDbgInfo->BufferSize.
DxgkDdiCollectDbgInfo обычно выполняется в неопределенном IRQL. Однако если pCollectDbgInfo->Причина имеет значение VIDEO_TDR_TIMEOUT_DETECTED (чтобы указать сброс на уровне адаптера) или VIDEO_ENGINE_TIMEOUT_DETECTED (доступно начиная с Windows 8, чтобы указать сброс одного или нескольких узлов в физическом адаптере), драйвер должен убедиться, что DxgkDdiCollectDbgInfo доступен для страницы, выполняется в IRQL = PASSIVE_LEVELи поддерживает синхронизации нулевого уровня.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
целевая платформа | Настольный |
заголовка | d3dkmddi.h |
IRQL | PASSIVE_LEVEL (см. замечания) |