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. |