Diretiva AddEventProvider do INF

Uma diretiva AddEventProvider é usada em um INF DDInstall. Seção Eventos. Ele especifica as características dos provedores ETW ( Rastreamento de Eventos para Windows ) associados a drivers. Essa diretiva tem suporte para Windows 10 versão 1809 e posterior.

[DDInstall.Events] 

AddEventProvider={ProviderGUID},event-provider-install-section
...

Entradas

ProviderGUID
Especifica o valor guid que identifica o provedor. Isso pode ser expresso como um valor GUID explícito do formulário {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} ou como um token %strkey% definido {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} como em uma seção Strings do arquivo INF.

event-provider-install-section
Faz referência a uma seção definida pelo gravador INF que contém informações para registrar o provedor para este dispositivo (ou dispositivos). Para obter mais informações, consulte a seção Comentários a seguir.

Comentários

As extensões definidas pelo sistema e que não diferenciam maiúsculas de minúsculas podem ser inseridas em uma DDInstall. Seção eventos que contém uma diretiva AddEventProvider em arquivos INF entre sistemas operacionais e/ou multiplataforma para especificar instalações específicas da plataforma ou específicas do sistema operacional.

Cada nome de seção criado pelo inf-writer deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para obter mais informações sobre essas regras, consulte Regras de sintaxe geral para arquivos INF.

Uma diretiva AddEventProvider deve referenciar uma seção nomeada event-provider-install-section em outro lugar no arquivo INF. Cada seção desse tipo tem o seguinte formato:

[event-provider-install-section]
 
ProviderName=name
ResourceFile=path-to-file
[MessageFile=path-to-file]
[ParameterFile=path-to-file]
(ImportChannel=channel-name) |
(AddChannel=channel-name,channel-type[,channel-install-section])
...

Cada seção de provedor de eventos deve fornecer ProviderName e ResourceFile. Opcionalmente, especifique uma lista de canais para o provedor usando qualquer combinação de ImportChannel(s) e AddChannel(s), cada um em uma linha separada. Para obter mais informações sobre listas de canais em um arquivo INF, consulte Especificando uma lista de canais abaixo. Para obter mais informações sobre os canais do Log de Eventos do Windows , consulte Definindo canais.

Entradas e valores da seção Event-Provider-Install

Providername=Nome
Especifica o nome do provedor. O nome não pode ter mais de 255 caracteres e não pode conter os caracteres: '>', '<', '&', '"', '|', '', ':', '', '?', '*' ou caracteres com valores ASCII menores que 31. Além disso, o nome deve seguir as restrições gerais em nomes de chave de arquivo e registro. Essas restrições podem ser encontradas em Nomeando um arquivo e limites de tamanho de elemento do Registro.

ResourceFile=caminho para arquivo
Especifica o caminho para o exe ou dll que contém os recursos de metadados do provedor, expressos como %dirid%\filename.

O número de dirid é um identificador de diretório personalizado ou um dos identificadores de diretório definidos pelo sistema descritos em Usando Dirids.

Messagefile=caminho para arquivo
Opcionalmente, especifica o caminho para o exe ou dll que contém os recursos de mensagem localizados do provedor, expresso como %dirid%\filename.

ParameterFile=caminho para arquivo
Opcionalmente, especifica o caminho para o exe ou dll que contém os recursos de cadeia de caracteres de parâmetro do provedor, expressos como %dirid%\filename.

ImportChannel=channel-name
Opcionalmente, especifica um canal que foi definido por outro provedor. Para obter mais informações, consulte a seção Especificando uma lista de canais a seguir.

AddChannel=channel-name,channel-type[,channel-install-section]
Opcionalmente, especifica um canal com uma sub-diretiva que, opcionalmente, faz referência a uma seção channel-install definida pelo gravador INF em outro lugar no arquivo INF. Para obter mais informações, consulte a seção Especificando uma lista de canais a seguir.

Especificando uma lista de canais

Você pode especificar uma lista de canais para o provedor em sua seção event-provider-install-section. Você pode importar um canal ou adicionar um canal à lista e a ordem desses canais é preservada. Para obter mais informações, consulte Definindo canais.

O nome do canal deve ser exclusivo na lista de canais que o provedor usa. O nome do canal deve ter menos de 255 caracteres e não pode conter os seguintes caracteres: '>', '<', '&', '"', '|', '', ':', '', '?', '*' ou caracteres com valores ASCII menores que 31.

O tipo de canal pode ser especificado como um dos seguintes valores numéricos, expressos em decimal ou, conforme mostrado na lista a seguir, em notação hexadecimal.

0x1 (Administração)
Administração canais de tipo dão suporte a eventos direcionados a usuários finais, administradores e pessoal de suporte. Os eventos gravados nos canais de Administração devem ter uma solução bem definida na qual o administrador pode agir.

0x2 (operacional)
Os canais de tipo operacional dão suporte a eventos que são usados para analisar e diagnosticar um problema ou ocorrência. Eles podem ser usados para disparar ferramentas ou tarefas com base no problema ou na ocorrência.

0x3 (analítico )
Os canais de tipo analítico dão suporte a eventos publicados em alto volume. Eles descrevem a operação do programa e indicam os problemas que não podem ser tratados por intervenção do usuário.

0x4 (Depurar)
Os canais de tipo de depuração dão suporte a eventos que são usados exclusivamente por desenvolvedores para diagnosticar um problema de depuração.

Uma sub-diretiva AddChannel também pode fazer referência a uma channel-install-section em outro lugar no arquivo INF. Cada seção desse tipo tem o seguinte formato:

[channel-install-section]

[Isolation=isolation-type]
[Access=access-string]
[Enabled=0|1]
[Value=value]
[LoggingMaxSize=max-size]
[LoggingRetention=retention-type]
[LoggingAutoBackup=0|1]

Para obter mais informações sobre atributos de canal, consulte ChannelType definido no Esquema EventManifest.

Entradas e valores da seção Channel-Install

Isolamento=tipo de isolamento
Opcionalmente, especifica as permissões de acesso padrão para o canal como um dos seguintes valores numéricos, expressos em decimal ou, conforme mostrado na lista a seguir, em notação hexadecimal. Se omitido, o padrão será 0x1 (Aplicativo).

0x1 (Aplicativo)

0x2 (Sistema)

0x3 (Personalizado)

Acesso=cadeia de caracteres de acesso
Opcionalmente, especifica um descritor de acesso SDDL ( Security Descriptor Definition Language ) que controla o acesso ao arquivo de log que faz backup do canal.

Essa cadeia de caracteres controla o acesso de leitura ao arquivo (as permissões de gravação serão ignoradas) se o Isolamento estiver definido como 0x1 (Aplicativo) ou 0x2 (Sistema), enquanto controla o acesso de gravação ao canal e o acesso de leitura ao arquivo se o atributo de isolamento estiver definido como 0x3 (Personalizado).

Habilitado=0|1
Opcionalmente, especifica se o canal está habilitado. Se omitido, o padrão será 0 (desabilitado).

Como 0x3 tipo de canal (Analítico) e 0x4 (Depuração) são canais de alto volume, você deve definir Habilitado como 1 somente ao investigar um problema com um componente que grava nesse canal. Cada vez que você habilita um canal de 0x3 (Analítico) e 0x4 (Depuração), o serviço limpa os eventos do canal.

Valor=Valor
Opcionalmente, especifica um identificador numérico que identifica exclusivamente o canal dentro da lista de canais que o provedor define.

LoggingMaxSize=max-size
Opcionalmente, especifica o tamanho máximo, em bytes, do arquivo de log. O valor padrão (e mínimo) é 1 MB.

LoggingRetention=tipo de retenção
Opcionalmente, especifica se o arquivo de log é 0x1 (circular) ou 0x2 (sequencial). O padrão é 0x1 (circular) para 0x1 (Administração) e tipo de canal (operacional) 0x2 e 0x2 (sequencial) para o tipo de canal0x3 (Analítico) e 0x4 (Depuração).

LoggingAutoBackup=0|1
Opcionalmente, especifica se um novo arquivo de log deve ser criado quando o arquivo de log atual atingir seu tamanho máximo. Defina como 1 para solicitar que o serviço crie um novo arquivo quando o arquivo de log atingir seu tamanho máximo; caso contrário, 0. Você poderá definir o LoggingAutoBackup como 1 somente se o LoggingRetention estiver definido como 0x2 (sequencial) e apenas para 0x1 (Administração) e 0x2tipo de canal (Operacional).

Exemplos

Este exemplo mostra as seções event-provider-install referenciadas pelas diretivas AddEventProvider , conforme já mostrado anteriormente no exemplo de DDInstall. Eventos.

[foo_Event_Provider_Inst]
ProviderName  = FooCollector
ResourceFile  = %13%\FooResource.dll
MessageFile   = %13%\FooMessage.exe

[bar_Event_Provider_Inst]
ProviderName  = BarCollector
ResourceFile  = %13%\BarResource.exe
MessageFile   = %13%\BarMessage.dll
ParameterFile = %13%\BarParameter.dll
ImportChannel = Microsoft-Windows-BaseProvider/Admin
AddChannel    = Bar-Provider/Admin,0x1,bar_Channel2_Inst    ; Admin type
ImportChannel = Microsoft-Windows-BaseProvider/Operational
ImportChannel = Microsoft-Windows-SampleProvider/Admin
AddChannel    = Bar-Provider/Debug,0x4                      ; Debug type

[bar_Channel2_Inst]
Isolation         = 2                                       ; System isolation
Enabled           = 1
Value             = 17
LoggingMaxSize    = 20971520
LoggingRetention  = 2                                       ; Sequential
LoggingAutoBackup = 1

Confira também

DDInstall. Eventos