Compartilhar via


Função de retorno de chamada WMIDPREQUEST (evntrace.h)

Um provedor de eventos baseado em RegisterTraceGuids ("Clássico") implementa essa função para receber solicitações de habilitação ou desabilitação de notificação de controladores.

O tipo WMIDPREQUEST define um ponteiro para essa função de retorno de chamada. ControlCallback é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

WMIDPREQUEST Wmidprequest;

ULONG Wmidprequest(
  [in] WMIDPREQUESTCODE RequestCode,
       PVOID RequestContext,
       ULONG *BufferSize,
  [in] PVOID Buffer
)
{...}

Parâmetros

[in] RequestCode

Código da solicitação. Esse será um dos valores a seguir.

Valor Significado
WMI_ENABLE_EVENTS Habilita o provedor ou altera a configuração do provedor.
WMI_DISABLE_EVENTS Desabilita o provedor.

RequestContext

Contexto definido pelo provedor. O provedor usa o parâmetro RequestContext de
RegisterTraceGuids para especificar o contexto.

BufferSize

Reservado para uso interno.

[in] Buffer

Ponteiro para uma estrutura WNODE_HEADER que contém informações sobre a sessão de rastreamento de eventos para a qual o provedor está sendo habilitado ou desabilitado.

Retornar valor

Você deverá retornar ERROR_SUCCESS se o retorno de chamada for bem-sucedido. Observe que o ETW ignora o valor retornado para essa função, exceto quando um controlador chama EnableTrace para habilitar um provedor e o provedor ainda não chamou RegisterTraceGuids. Quando isso ocorrer, RegisterTraceGuids retornará o valor retornado desse retorno de chamada se o registro tiver sido bem-sucedido.

Comentários

Essa função é especificada usando a função RegisterTraceGuids . Quando o controlador chama a função EnableTrace para habilitar, desabilitar ou alterar os sinalizadores ou o nível de habilitação, o ETW chama esse retorno de chamada. O provedor habilita ou desabilita a si mesmo com base no valor requestCode . Normalmente, o provedor usa esse valor para definir um sinalizador global para indicar seu estado habilitado.

O provedor define sua interpretação de ser habilitado ou desabilitado. Em geral, se um provedor estiver habilitado, ele gerará eventos, mas enquanto estiver desabilitado, ele não gerará.

O ETW não passa os sinalizadores de habilitação e habilita o nível que o controlador passa para a função EnableTrace para esse retorno de chamada. Para recuperar essas informações, chame as funções GetTraceEnableFlags e GetTraceEnableLevel , respectivamente.

Você também precisa recuperar o identificador de sessão nesse retorno de chamada para chamadas futuras. Para recuperar o identificador de sessão, chame a função GetTraceLoggerHandle .

Sua função de retorno de chamada não deve chamar nada que possa incorrer em LoadLibrary (mais especificamente, qualquer coisa que exija um bloqueio de carregador).

Exemplos

Para obter um exemplo de implementação de uma função ControlCallback , consulte Escrevendo eventos clássicos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho evntrace.h

Confira também

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER