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

Подпрограмма обратного вызова DxgkDdiCollectDiagnosticInfo собирает сведения о частном драйвере по причинам, указанным в DXGK_DIAGNOSTICINFO_TYPE.

В Windows 10 версии 1903 драйвер будет вызываться для сбора частной информации, если не удалось выполнить вызовы функции DxgkDdiAddDevice или DxgkDdiStartDevice.

Синтаксис

DXGKDDI_COLLECTDIAGNOSTICINFO DxgkddiCollectdiagnosticinfo;

NTSTATUS DxgkddiCollectdiagnosticinfo(
  [in]      IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [in, out] INOUT_PDXGKARG_COLLECTDIAGNOSTICINFO pCollectDiagnosticInfo
)
{...}

Параметры

[in] PhysicalDeviceObject

Указатель на физический объект устройства (PDO), определяющий адаптер дисплея.

[in, out] pCollectDiagnosticInfo

Указатель на структуру DXGKARG_COLLECTDIAGNOSTICINFO , которая описывает сведения, собранные драйвером.

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

Возвращает STATUS_SUCCESS, если частные данные были успешно собраны. В противном случае возвращается код ошибки, например один из следующих.

Код ошибки Значение
STATUS_DRIVER_INTERNAL_ERROR В драйвере произошла общая ошибка SW.
STATUS_ACCESS_DENIED Оборудование в настоящее время используется другими потоками, и этот DDI не может получить к нему доступ.
STATUS_DEVICE_HARDWARE_ERROR Произошла общая ошибка HW.
STATUS_DEVICE_POWERED_OFF Устройство отключено.

Комментарии

Эта функция вызывается на уровне PASSIVE в любое время между вызовами DxgkDdiAddDevice и DxgkDdiStartDevice и должна поддерживать нулевой уровень синхронизации. Собранные данные не должны содержать никаких частных сведений о пользователе.

Драйверы WDDM 2.7 и более поздних версий требуются для поддержки типа перечисления DXGK_DI_BLACKSCREEN DXGK_DIAGNOSTICINFO_TYPE для сбора данных черного экрана.

В сценариях черного экрана ОПЕРАЦИОННая система сначала собирает данные белого поля от драйвера путем вызова DxgkDdiGetDisplayStateNonIntrusive и DxgkDdiGetDisplayStateIntrusive перед вызовом этого DDI для сбора сведений о черном ящике.

Рекомендуется использовать pCollectDiagnosticInfo-BucketingString> для сегментирования данных черного ящика по возможности. Если размер входного буфера BufferSizeIn недостаточно для всех данных черного ящика, драйверы должны сделать свои собственные компромиссы в выходе из данных, которые являются наименее важными в анализе первопричин черного экрана.

Требования

   
Минимальная версия клиента Windows 10 версии 1903
Заголовок dispmprt.h
IRQL PASSIVE_LEVEL

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

DXGKARG_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiStartDevice