DXGKCB_LOG_ETW_EVENT función de devolución de llamada (dispmprt.h)

La función DxgkCbLogEtwEvent registra un evento seguimiento de eventos para Windows (ETW).

Sintaxis

DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;

void DxgkcbLogEtwEvent(
  [in] const LPCGUID EventGuid,
  [in] UCHAR Type,
  [in] USHORT EventBufferSize,
  [in] PVOID EventBuffer
)
{...}

Parámetros

[in] EventGuid

GUID que identifica el evento que se va a registrar.

[in] Type

Constante que especifica el tipo de evento. Estas constantes se definen en Evntrace.h y tienen la forma de EVENT_TRACE_TYPE_XX. El tipo se omite cuando EventGuid se GUID_DXGKDDI_AZURE_TRIAGE_EVENT.

[in] EventBufferSize

Tamaño, en bytes, del búfer al que apunta EventBuffer. Hay una penalización significativa del rendimiento si el búfer es mayor que 256 bytes.

[in] EventBuffer

Puntero a un búfer que contiene la información que se va a registrar. Este parámetro puede ser NULL o un puntero al siguiente tipo de estructura en función del valor de EventGuid.

Valor devuelto

None

Observaciones

Si el registro de eventos no está habilitado, DxgkCbLogEtwEvent devuelve inmediatamente sin registrar el evento.

Para habilitar o deshabilitar el registro de eventos, llame a la función DxgkDdiControlEtwLogging .

Si EventBufferSize es menor o igual que 256, DxgkCbLogEtwEvent se puede llamar a cualquier IRQL. Si EventBufferSize es mayor que 256, se debe llamar a DxgkCbLogEtwEvent en IRQL = PASSIVE_LEVEL.

Ejemplo: Registro de un evento con el registrador de eventos

En el ejemplo de código siguiente se muestra cómo registrar un evento con el registrador de eventos.

// {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);
}

Registro de eventos de controlador de Azure

A partir de Windows Server 2022 (WDDM 2.9), una función de devolución de llamada DxgkCbLogEtwEvent del controlador de gráficos puede exponer eventos importantes relevantes para la evaluación y supervisión de Azure. A medida que Azure agrega ofertas de vGPU, será más importante tener un mecanismo para exponer eventos importantes que ve el controlador. Especialmente importante para la supervisión y el estado es la exposición de restablecimientos de nivel de función (TDR de VF) y restablecimientos de GPU completos (TDR de todo el adaptador). En el futuro, este marco permitirá al sistema operativo exponer eventos importantes adicionales que pueden implicar comportamientos específicos del controlador que tienen valor de evaluación de prioridades cuando llegan problemas.

Un controlador debe usar el SIGUIENTE GUID para notificar eventos de controladores de Azure específicos:


DEFINE_GUID(GUID_DXGKDDI_AZURE_TRIAGE_EVENT,
0x45125F6F, 0x6132, 0x4082, 0xAD, 0x17, 0xED, 0x27, 0xF8, 0xDD, 0x02, 0xF9);

Estos eventos los usan los componentes del kernel de gráficos para alimentar la información de evaluación de prioridades en canalizaciones de supervisión de Azure estándar que se usan para la evaluación de prioridades de incidentes. Se integran con otros eventos de gráficos que también se exponen para crear historiales de eventos de máquina y exponen consultas útiles que se usarán en la supervisión del estado del host y las máquinas virtuales que admite.

Cuando se usa este GUID, EventBuffer apunta a una estructura de DXGKARG_PARTITIONING_EVENT_NOTIFICATION .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Escritorio
Encabezado dispmprt.h (incluir Dispmprt.h)
IRQL vea la sección Comentarios.

Consulte también

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging