Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция DxgkDdiCollectDbgInfo2 выводит сведения о драйвере для отчета отладки.
Синтаксис
DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;
NTSTATUS DxgkddiCollectdbginfo2(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}
Параметры
hAdapter
[in] Дескриптор к блоку контекста, связанному с адаптером отображения. Минипорт отображения (KMD) ранее предоставил этот дескриптор для Dxgkrnlв параметре вывода miniportDeviceContextDxgkDdiAddDevice.
pCollectDbgInfo2
[in/out] Указатель на структуру DXGKARG_COLLECTDBGINFO2, содержащую сведения для отчета отладки.
Возвращаемое значение
DxgkDdiCollectDbgInfo2 возвращает одно из следующих значений:
Возвращаемый код | Описание |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo2 сведения о драйвере успешного вывода для отчета отладки; ИЛИ ОС проигнорировала содержимое в буфере, на который pBuffer указывает и не добавил информацию из DxgkDdiCollectDbgInfo2 в отчет отладки. |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo2 не удалось выделить память, необходимую для завершения. |
STATUS_UNSUCCESSFUL | Другая ошибка не позволила драйверу собирать допустимые сведения об отладке. |
Замечания
Dxgkrnl вызывает функцию KMD dxgkDdiCollectDbgInfo2 при создании отчета отладки, связанного с драйвером. 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->причина задано значение 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 (см. замечания) |