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