Compartilhar via


DXGKCB_LOG_ETW_EVENT função de retorno de chamada (dispmprt.h)

A função DxgkCbLogEtwEvent registra um evento ETW (Rastreamento de Eventos para Windows).

Sintaxe

DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;

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

Parâmetros

[in] EventGuid

Um GUID que identifica o evento a ser registrado.

[in] Type

Uma constante que especifica o tipo de evento. Essas constantes são definidas em Evntrace.h e têm a forma de EVENT_TRACE_TYPE_XX. O tipo é ignorado quando EventGuid é GUID_DXGKDDI_AZURE_TRIAGE_EVENT.

[in] EventBufferSize

O tamanho, em bytes, do buffer apontado por EventBuffer. Haverá uma penalidade significativa de desempenho se o buffer for maior que 256 bytes.

[in] EventBuffer

Um ponteiro para um buffer que contém as informações a serem registradas. Esse parâmetro pode ser NULL ou um ponteiro para o tipo de estrutura a seguir, dependendo do valor de EventGuid.

Retornar valor

Nenhum

Comentários

Se o log de eventos não estiver habilitado, DxgkCbLogEtwEvent retornará imediatamente sem registrar o evento em log.

Para habilitar ou desabilitar o log de eventos, chame a função DxgkDdiControlEtwLogging .

Se EventBufferSize for menor ou igual a 256, DxgkCbLogEtwEvent poderá ser chamado de QUALQUER IRQL. Se EventBufferSize for maior que 256, DxgkCbLogEtwEvent deverá ser chamado em IRQL = PASSIVE_LEVEL.

Exemplo: registrar em log um evento com o agente de eventos

O exemplo de código a seguir mostra como registrar um evento com o agente 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);
}

Registrar eventos do driver do Azure em log

A partir do Windows Server 2022 (WDDM 2.9), a função de retorno de chamada DxgkCbLogEtwEvent de um driver gráfico pode expor eventos importantes relevantes para a triagem e o monitoramento do Azure. À medida que o Azure adiciona ofertas de vGPU, será mais importante ter um mecanismo para expor eventos importantes que o driver vê. Particularmente importante para monitoramento e integridade é a exposição de TDRs (redefinições no nível da função) e redefinições de GPU inteiras (TDRs em todo o adaptador). No futuro, essa estrutura permitirá que o sistema operacional exponha eventos importantes adicionais que podem envolver comportamentos específicos do driver que têm valor de triagem quando os problemas chegam.

Um driver deve usar o GUID a seguir para relatar eventos específicos do driver do Azure:


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

Esses eventos são usados pelos componentes de kernel de gráficos para alimentar informações de triagem em pipelines de monitoramento padrão do Azure usados para triagem de incidentes. Eles se integram a outros eventos gráficos que também estão sendo expostos para criar históricos de eventos de computador e expõem consultas úteis a serem usadas no monitoramento da integridade do host e das VMs compatíveis.

Quando esse GUID é usado, EventBuffer aponta para uma estrutura DXGKARG_PARTITIONING_EVENT_NOTIFICATION .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho dispmprt.h (inclua Dispmprt.h)
IRQL Consulte a seção Observações.

Confira também

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging