структура DXGK_DEBUG_REPORT_INTERFACE (dispmprt.h)
Структура DXGK_DEBUG_REPORT_INTERFACE содержит указатели на функции в интерфейсе отчета об отладке, который реализуется драйвером порта отображения.
Синтаксис
typedef struct _DXGK_DEBUG_REPORT_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
DXGK_DEBUG_REPORT_HANDLE( )(HANDLE DeviceHandle,ULONG ulCode,ULONG_PTR ulpArg1,ULONG_PTR ulpArg2,ULONG_PTR ulpArg3,ULONG_PTR ulpArg4) *DbgReportCreate;
BOOLEAN( )(DXGK_DEBUG_REPORT_HANDLE hReport,PVOID pvData,ULONG ulDataSize) *DbgReportSecondaryData;
VOID( )(DXGK_DEBUG_REPORT_HANDLE hReport) *DbgReportComplete;
} DXGK_DEBUG_REPORT_INTERFACE, *PDXGK_DEBUG_REPORT_INTERFACE;
Члены
Size
Размер данной структуры (в байтах).
Version
Номер версии интерфейса отчета отладки. Константы номера версии определяются в Dispmprt.h (например, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).
Context
Указатель на контекст, предоставляемый драйвером порта отображения.
InterfaceReference
Указатель на функцию ссылки на интерфейс, реализованную драйвером порта отображения.
InterfaceDereference
Указатель на функцию разыменования интерфейса, реализованную драйвером порта отображения.
DbgReportCreate
Создает исходный отчет об ошибках.
Если драйвер мини-порта дисплея обнаруживает сбой, а затем восстанавливается после него, можно создать отчет об ошибках, который позже можно будет использовать для отладки. Сначала вызовите DbgReportCreate , чтобы создать первоначальный отчет. Затем добавьте данные в отчет, выполнив один или несколько вызовов DbgReportSecondaryData. Завершив добавление данных в отчет, вызовите DbgReportComplete.
Ниже приведен синтаксис dbgReportComplete .
// IRQL: PASSIVE_LEVEL
DXGK_DEBUG_REPORT_HANDLE (*DbgReportCreate)(
_In_ HANDLE DeviceHandle,
_In_ ULONG ulCode,
_In_ ULONG_PTR ulpArg1,
_In_ ULONG_PTR ulpArg2,
_In_ ULONG_PTR ulpArg3,
_In_ ULONG_PTR ulpArg4
);
DeviceHandle — это дескриптор блока контекста, связанного с видеоадаптером. Драйвер мини-порта дисплея создал этот дескриптор в своей функции DxgkDdiAddDevice* . Этот параметр может принимать значение NULL.
ulCode — это код для отчета об ошибках. Поддерживаются следующие коды:
- THREAD_STUCK_IN_DEVICE_DRIVER
- VIDEO_DRIVER_DEBUG_REPORT_REQUEST
- VIDEO_TDR_FATAL_ERROR
- VIDEO_TDR_SUCCESS
ulpArg1 — первый аргумент, добавляемый в отчет. Разработчик драйвера минипорта дисплея определяет значение и значение ulpArg1.
ulpArg2 — второй аргумент, добавляемый в отчет. Разработчик драйвера мини-порта дисплея определяет значение и значение ulpArg2.
ulpArg3 — третий аргумент, добавляемый в отчет. Разработчик драйвера минипорта дисплея определяет значение и значение ulpArg3.
ulpArg4 зарезервировано.
DbgReportSecondaryData
Добавляет данные в исходный отчет об ошибках, созданный ранее с помощью DbgReportCreate.
Вызовите DbgReportSecondaryData , чтобы добавить данные в исходный отчет, созданный при предыдущем вызове DbgReportCreate. DbgReportSecondaryData можно вызвать несколько раз, но при каждом вызове данные, записанные в отчет, перезаписывают данные, записанные предыдущим вызовом. Следующие шаги дают хорошую стратегию для добавочного добавления данных в отчет.
- Получите данные, которые являются наиболее безопасными для сбора.
- Вызовите DbgReportSecondaryData , чтобы записать эти данные в отчет.
- Получение данных, которые являются более рискованными для сбора.
- Вызовите DbgReportSecondaryData , чтобы записать исходные безопасные данные вместе с вновь собранными данными о рисках в отчет. В этот вызов необходимо включить как безопасные, так и рискованные данные, так как данные, записанные этим вызовом, перезаписывают данные, записанные при первом вызове DbgReportSecondaryData.
- Продолжайте вызывать DbgReportSecondaryData, каждый раз улучшая данные, пока у вас не будет данных для добавления.
- Завершив добавление данных в отчет, закройте отчет, вызвав DbgReportComplete. Отчет хранится в файле и отправляется в корпорацию Майкрософт при перезагрузке компьютера.
- Если компьютер перестает отвечать на запросы перед вызовом DbgReportComplete, данные, добавленные в отчет при последнем успешном вызове DbgReportSecondaryData , сохраняются и отправляются в корпорацию Майкрософт при перезагрузке компьютера.
BOOLEAN (*DbgReportSecondaryData)(
_Inout_ DXGK_DEBUG_REPORT_HANDLE hReport,
_In_ PVOID pvData,
_In_ ULONG ulDataSize
);
hReport — это дескриптор отчета об ошибках, к которому будут добавлены данные. Драйвер мини-порта дисплея ранее получил этот дескриптор, вызвав DbgReportCreate.
pvData — это указатель на буфер, содержащий данные для добавления в отчет.
ulDataSize — это размер в байтах данных, добавляемых в отчет. Значение этого параметра должно быть меньше или равно DXGK_DEBUG_REPORT_MAX_SIZE.
DbgReportComplete
Закрывает отчет об ошибках и освобождает все ресурсы, связанные с отчетом.
DbgReportCreate создает запись в журнале системных событий и отображает диалоговое окно, которое информирует пользователя о сбое и предоставляет возможность отправить отчет об ошибках в корпорацию Майкрософт.
Отчет об ошибках сохраняется в файле и планируется отправить в корпорацию Майкрософт при перезагрузке компьютера. Отчет об ошибках содержит код ошибки и четыре аргумента. Код ошибки и первые три аргумента предоставляются вызывающим объектом DbgReportCreate. Четвертый аргумент в отчете предоставляется операционной системой и указывает количество отчетов, созданных с момента запуска компьютера. Например, если четвертый аргумент имеет значение 5, это означает, что драйвер мини-порта дисплея с момента последнего запуска компьютера создал четыре предыдущих отчета об ошибках. Сохраняется только пятый отчет, так как каждый из них перезаписывает предыдущий.
// IRQL: PASSIVE_LEVEL
VOID DbgReportComplete(
IN OUT DXGK_DEBUG_REPORT_HANDLE hReport
);
- hReport — это дескриптор отчета об ошибках, который должен быть закрыт. Драйвер мини-порта дисплея ранее получил этот дескриптор, вызвав DbgReportCreate.
IRQL: PASSIVE_LEVEL
Комментарии
Драйвер мини-порта дисплея предоставляет элементы Size и Version этой структуры, а затем вызывает DxgkCbQueryServices*, который заполняет остальные элементы этой структуры.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Верхняя часть | dispmprt.h (включая Dispmprt.h) |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по