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. tipo é ignorado quando EventGuid é GUID_DXGKDDI_AZURE_TRIAGE_EVENT.

[in] EventBufferSize

O tamanho, em bytes, do buffer apontado por EventBuffer. Haverá uma penalidade de desempenho significativa 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.

Valor de retorno

Nenhum

Observações

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

Para habilitar ou desabilitar o registro em log de eventos, chame a funçãoDxgkDdiControlEtwLogging.

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

Registrando eventos de driver do Azure

A partir do Windows Server 2022 (WDDM 2.9), um driver gráfico DxgkCbLogEtwEvent função de retorno de chamada 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 de todo o adaptador). No futuro, essa estrutura permitirá que o sistema operacional exponha eventos importantes adicionais que possam envolver comportamentos específicos do driver que têm valor de triagem quando os problemas chegarem.

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 gráficos do kernel 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 máquina 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 de DXGKARG_PARTITIONING_EVENT_NOTIFICATION.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Área de trabalho
cabeçalho dispmprt.h (inclua Dispmprt.h)
IRQL Consulte a seção Comentários.

Consulte também

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging