Поделиться через


функция обратного вызова 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.

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

None

Remarks

Если ведение журнала событий не включено, 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 добавляет предложения виртуальных ЦП, становится более важным механизм для предоставления важных событий, которые видит драйвер. Для мониторинга и работоспособности особенно важно использовать сбросы на уровне функций (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 (включая Dispmprt.h)
IRQL См. раздел "Примечания".

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

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging