INF AddEventProvider, dyrektywa

Dyrektywa AddEventProvider jest używana w programie INF DDInstall. Sekcja Zdarzenia. Określa charakterystykę śledzenia zdarzeń dla dostawców Windows (ETW) skojarzonych ze sterownikami. Ta dyrektywa jest obsługiwana w przypadku Windows 10 w wersji 1809 lub nowszej.

[DDInstall.Events] 

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

Wpisy

Identyfikator GUID dostawcy
Określa wartość identyfikatora GUID identyfikującą dostawcę. Można to wyrazić jako jawną wartość identyfikatora GUID formularza {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} lub jako token %strkey% zdefiniowany {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} w sekcji Ciągi pliku INF.

event-provider-install-section
Odwołuje się do sekcji zdefiniowanej przez moduł zapisywania INF, która zawiera informacje dotyczące rejestrowania dostawcy dla tego urządzenia (lub urządzeń). Aby uzyskać więcej informacji, zobacz następującą sekcję Uwagi .

Remarks

Rozszerzenia niewrażliwe na wielkość liter i zdefiniowane przez system można wstawić do instalacji DDInstall. Sekcja zdarzeń zawierająca dyrektywę AddEventProvider w plikach INF międzyplatformowych i/lub międzyplatformowych w celu określenia instalacji specyficznych dla platformy lub systemu operacyjnego.

Każda nazwa sekcji utworzonej przez moduł zapisywania INF musi być unikatowa w pliku INF i musi być zgodna z ogólnymi regułami definiowania nazw sekcji. Aby uzyskać więcej informacji na temat tych reguł, zobacz Ogólne reguły składni dla plików INF.

Dyrektywa AddEventProvider musi odwoływać się do nazwanej sekcji event-provider-install-section w innym miejscu w pliku INF. Każda taka sekcja ma następującą formę:

[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])
...

Każda sekcja dostawcy zdarzeń-install-install-musi zawierać wartość ProviderName i ResourceFile. Opcjonalnie określ listę kanałów dla dostawcy przy użyciu dowolnej kombinacji kanałów ImportChannel i AddChannel ( s), z których każda znajduje się w osobnym wierszu. Aby uzyskać więcej informacji na temat list kanałów w pliku INF, zobacz Określanie listy kanałów poniżej. Aby uzyskać więcej informacji na temat kanałów dziennika zdarzeń Windows, zobacz Definiowanie kanałów.

Event —Provider-Install wpisy i wartości sekcji

= Nazwa dostawcynazwa
Określa nazwę dostawcy. Nazwa nie może być dłuższa niż 255 znaków i nie może zawierać znaków: '>', '<', '&', '', '|', '', ':', '', '?', '*' lub znaków z wartościami ASCII mniejszymi niż 31. Ponadto nazwa musi być zgodna z ogólnymi ograniczeniami dotyczącymi nazw plików i kluczy rejestru. Te ograniczenia można znaleźć w artykule Nazewnictwo plików i limitów rozmiaru elementu rejestru.

= Plik zasobuścieżka do pliku
Określa ścieżkę do pliku exe lub dll, który zawiera zasoby metadanych dostawcy, wyrażone jako %dirid%\filename.

Numer dirid jest identyfikatorem katalogu niestandardowego lub jednym z identyfikatorów katalogów zdefiniowanych przez system opisanych w temacie Using Dirids (Używanie dirids).

MessageFile=ścieżka do pliku
Opcjonalnie określa ścieżkę do pliku exe lub dll zawierającego zlokalizowane zasoby komunikatów dostawcy, wyrażone jako %dirid%\filename.

ParametrFile=ścieżka do pliku
Opcjonalnie określa ścieżkę do pliku exe lub dll zawierającego zasoby ciągów parametrów dostawcy, wyrażone jako %dirid%\filename.

ImportChannel=nazwa kanału
Opcjonalnie określa kanał, który został zdefiniowany przez innego dostawcę. Aby uzyskać więcej informacji, zobacz następującą sekcję Określanie listy kanałów .

AddChannel=channel-name,channel-type[,channel-install-section]
Opcjonalnie określa kanał z pod dyrektywą, która opcjonalnie odwołuje się do sekcji inf-writer-defined channel-install-section w innym miejscu w pliku INF. Aby uzyskać więcej informacji, zobacz następującą sekcję Określanie listy kanałów .

Określanie listy kanałów

Możesz określić listę kanałów dla dostawcy w sekcji event-provider-install-. Możesz zaimportować kanał lub dodać kanał do listy, a kolejność tych kanałów zostanie zachowana. Aby uzyskać więcej informacji, zobacz Definiowanie kanałów.

Nazwa kanału musi być unikatowa na liście kanałów używanych przez dostawcę. Nazwa kanału musi być mniejsza niż 255 znaków i nie może zawierać następujących znaków: ">", "<", "&", "", "|", "", ":", "", "?", "*" lub znaków z wartościami ASCII mniejszymi niż 31.

Typ kanału można określić jako jedną z następujących wartości liczbowych wyrażoną w postaci dziesiętnej lub, jak pokazano na poniższej liście, w notacji szesnastkowej.

0x1 (administrator)
Kanały typu administratora obsługują zdarzenia przeznaczone dla użytkowników końcowych, administratorów i personelu pomocy technicznej. Zdarzenia zapisywane w kanałach administracyjnych powinny mieć dobrze zdefiniowane rozwiązanie, na którym administrator może działać.

0x2 (operacyjne)
Kanały typu operacyjnego obsługują zdarzenia używane do analizowania i diagnozowania problemu lub wystąpienia. Mogą służyć do wyzwalania narzędzi lub zadań na podstawie problemu lub wystąpienia.

0x3 (analityczne)
Kanały typu analitycznego obsługują zdarzenia publikowane w dużej ilości. Opisują one operację programu i wskazują problemy, których nie można obsłużyć przez interwencję użytkownika.

0x4 (debugowanie)
Kanały typu debugowania obsługują zdarzenia, które są używane wyłącznie przez deweloperów do diagnozowania problemu na potrzeby debugowania.

Sub-dyrektywa AddChannel może również odwoływać się do sekcji channel-install-section w innym miejscu w pliku INF. Każda taka sekcja ma następującą formę:

[channel-install-section]

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

Aby uzyskać więcej informacji na temat atrybutów kanału, zobacz ChannelType zdefiniowane w schemacie EventManifest.

Channel-Install wpisy i wartości sekcji

Izolacja=typ izolacji
Opcjonalnie określa domyślne uprawnienia dostępu dla kanału jako jedną z następujących wartości liczbowych, wyrażoną w przecinku lub, jak pokazano na poniższej liście, w notacji szesnastkowej. W przypadku pominięcia ta wartość domyślna to 0x1 (aplikacja).

0x1 (aplikacja)

0x2 (system)

0x3 (niestandardowe)

Dostęp=access-string
Opcjonalnie określa deskryptor dostępu języka SDDL ( Security Descriptor Definition Language ), który kontroluje dostęp do pliku dziennika, który wspiera kanał.

Ten ciąg kontroluje dostęp do odczytu do pliku (uprawnienia do zapisu są ignorowane), jeśli izolacja jest ustawiona na 0x1 (aplikacja) lub 0x2 (system), podczas gdy kontroluje dostęp do zapisu do kanału i dostęp do odczytu do pliku, jeśli atrybut izolacji jest ustawiony na 0x3 (niestandardowy).

Włączone=0|1
Opcjonalnie określa, czy kanał jest włączony. W przypadku pominięcia ta wartość domyślna to 0 (wyłączone).

Ponieważ typkanału 0x3 (analityczny) i 0x4 (Debugowanie) są kanałami o dużej ilości, należy ustawić wartość Włączone na 1 tylko podczas badania problemu z składnikiem, który zapisuje w tym kanale. Za każdym razem, gdy włączysz kanał 0x3 (analityczny) i 0x4 (Debugowanie), usługa czyści zdarzenia z kanału.

Wartość=wartość
Opcjonalnie określa identyfikator liczbowy, który jednoznacznie identyfikuje kanał na liście kanałów definiowanych przez dostawcę.

LoggingMaxSize=maksymalny rozmiar
Opcjonalnie określa maksymalny rozmiar pliku dziennika w bajtach. Wartość domyślna (i minimalna) to 1 MB.

Ponowne rejestrowanie=typ przechowywania
Opcjonalnie określa, czy plik dziennika jest 0x1 (okrągły) lub 0x2 (sekwencyjny). Wartość domyślna to 0x1 (cykliczne) dla kanałów typu kanału0x1 (administrator) i 0x2 (operacyjny) i 0x2 (sekwencyjne) dla kanałów 0x3 (analityczne) i 0x4 (debugowanie).

LoggingAutoBackup=0|1
Opcjonalnie określa, czy utworzyć nowy plik dziennika, gdy bieżący plik dziennika osiągnie maksymalny rozmiar. Ustaw wartość 1, aby zażądać utworzenia przez usługę nowego pliku, gdy plik dziennika osiągnie maksymalny rozmiar; w przeciwnym razie, 0. Można ustawić wartość LoggingAutoBackup na wartość 1 tylko wtedy, gdy właściwość LoggingRetention jest ustawiona na 0x2 (sekwencyjne) i tylko dla typukanału 0x1 (administrator) i 0x2 (operacyjny).

Examples

W tym przykładzie pokazano sekcje instalacji dostawcy zdarzeń, do których odwołuje się dyrektywy AddEventProvider , jak pokazano wcześniej w przykładzie dla DDInstall. Zdarzenia.

[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

Informacje dodatkowe

DDInstall. Zdarzenia