функция обратного вызова DXGKCB_LOG_ETW_EVENT (dispmprt.h)
Функция DxgkCbLogEtwEvent регистрирует событие трассировки событий для Windows (ETW).
Синтаксис
DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;
void DxgkcbLogEtwEvent(
[in] const LPCGUID EventGuid,
[in] UCHAR Type,
[in] USHORT EventBufferSize,
[in] PVOID EventBuffer
)
{...}
Параметры
[in] EventGuid
GUID, определяющий событие для ведения журнала.
[in] Type
Константа, указывающая тип события. Эти константы определены в Evntrace.h и имеют форму EVENT_TRACE_TYPE_XX. тип игнорируется, если EventGuid GUID_DXGKDDI_AZURE_TRIAGE_EVENT.
[in] EventBufferSize
Размер буфера в байтах, на который указывает EventBuffer. Существует значительный штраф в производительности, если буфер превышает 256 байт.
[in] EventBuffer
Указатель на буфер, содержащий данные для ведения журнала. Этот параметр может иметь значение NULL или указатель на следующий тип структуры в зависимости от значения EventGuid.
Возвращаемое значение
Никакой
Замечания
Если ведение журнала событий не включено, DxgkCbLogEtwEvent возвращается немедленно без регистрации события.
Чтобы включить или отключить ведение журнала событий, вызовите функцию DxgkDdiControlEtwLogging.
Если EventBufferSize меньше или равно 256, DxgkCbLogEtwEvent можно вызвать любой IRQL. Если EventBufferSize больше 256, DxgkCbLogEtwEvent необходимо вызвать в IRQL = PASSIVE_LEVEL.
Пример. Ведение журнала события с помощью средства ведения журнала событий
В следующем примере кода показано, как регистрировать событие с помощью средства ведения журнала событий.
// {A7BF27A0-7401-4733-9FED-FDB51067FECC}
DEFINE_GUID(R200_DUMMY_LOGGING,
0xa7bf27a0, 0x7401, 0x4733, 0x9f, 0xed, 0xfd, 0xb5, 0x10, 0x67, 0xfe, 0xcc);
VOID
DummyTrace(
HW_DEVICE_EXTENSION* Adapter
)
{
Adapter->ddiCallback.DxgkCbLogEtwEvent(&R200_DUMMY_LOGGING,
EVENT_TRACE_TYPE_INFO,
0,
NULL);
}
Ведение журнала событий драйвера Azure
Начиная с Windows Server 2022 (WDDM 2.9), графический драйвер DxgkCbLogEtwEvent функции обратного вызова может предоставлять важные события, связанные с триажем и мониторингом Azure. Так как Azure добавляет предложения vGPU, он станет более важным механизмом для предоставления важных событий, которые видит драйвер. Особенно важно для мониторинга и работоспособности — это воздействие сбросов уровня функций (TDR VF) и сбросов полного GPU (TDR на уровне адаптера). В будущем эта платформа позволит ОС предоставлять дополнительные важные события, которые могут включать поведение конкретного драйвера, которое имеет значение триажа при поступлении проблем.
Драйвер должен использовать следующий GUID для отчета о конкретных событиях драйвера Azure:
DEFINE_GUID(GUID_DXGKDDI_AZURE_TRIAGE_EVENT,
0x45125F6F, 0x6132, 0x4082, 0xAD, 0x17, 0xED, 0x27, 0xF8, 0xDD, 0x02, 0xF9);
Эти события используются компонентами графического ядра для отправки сведений о триаже в стандартные конвейеры мониторинга Azure, используемые для обработки инцидентов. Они интегрируются с другими графическими событиями, которые также предоставляются для создания журналов событий компьютера и предоставляют полезные запросы, которые будут использоваться в мониторинге работоспособности узла и поддерживаемых виртуальных машин.
При использовании этого GUID EventBuffer указывает на структуру DXGKARG_PARTITIONING_EVENT_NOTIFICATION.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
целевая платформа | Настольный |
заголовка | dispmprt.h (include Dispmprt.h) |
IRQL | См. раздел "Примечания". |