次の方法で共有


INF AddAutoLogger および UpdateAutoLogger ディレクティブ

AddAutoLoggerUpdateAutoLogger ディレクティブは、 INF DDInstall.Events セクション内で使用されます。 オペレーティング システムの起動プロセスの 早い段階で発生したイベントを記録する Windows イベント トレーシング (ETW) AutoLogger セッションの特性を指定します。 これらのディレクティブは、Windows 11 以降でサポートされています。

[DDInstall.Events] 

AddAutoLogger=session-name,{SessionGUID},add-autologger-install-section 
UpdateAutoLogger=session-name,update-autologger-install-section 
... 

エントリ

session-name
追加する AutoLogger セッションの名前を指定します。 この名前は、コンピューター上の AutoLogger セッションのセット間で一意である必要があります。 セッション名には、会社名または会社名の省略形を含め、別の会社のセッション名と競合しないようにすることをお勧めします。

SessionGUID
AutoLogger セッションを識別する GUID 値を指定します。 これは、フォーム {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} の明示的な GUID 値として、または INF ファイル {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}Strings セクションで定義された %strkey% トークンとして表すことができます。

add-autologger-install-section
AutoLogger を登録するための情報を含む INF ライター定義セクションを参照します。 詳細については、「解説」を参照してください。

update-autologger-install-section
既存の AutoLogger にプロバイダーを追加するための情報を含む INF ライター定義セクションを参照します。 詳細については、「解説」を参照してください。

解説

自動ロガーの詳細については、「自動ロガー セッション の構成と開始」を参照してください。

INF ライターで定義された各セクション名は、INF ファイル内で一意である必要があり、セクション名を定義するための一般的な規則に従う必要があります。 これらの規則の詳細については、「INF ファイルの一般的な構文規則」を参照してください。

AddAutoLogger ディレクティブは、INF ファイル内の別の場所で add-autologger-install-section という名前を参照する必要があります。 各セクションの形式は次のとおりです。

[add-autologger-install-section] 

Start=<0 | 1> 
[BufferSize=buffer-size] 
[ClockType=clock-type] 
[DisableRealtimePersistence= <0 | 1>] 
[FileName=path-to-file] 
[FileMax=file-max]
[FlushTimer=flush-timer] 
[LogFileMode=log-file-mode] 
[MaxFileSize=max-file-size] 
[MaximumBuffers=max-buffers] 
[MinimumBuffers=min-buffers] 

(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section) 
… 

add-autologger-install-sectionStart を指定する必要があります。 必要に応じて、 AddAutoLoggerProvider を使用して AutoLogger の 1 つ以上の AutoLogger プロバイダーを個別の行に指定します。 INF ファイル内の AutoLogger プロバイダーの詳細については、以下の「AutoLogger プロバイダーの追加」を参照してください。

UpdateAutoLogger ディレクティブは、INF ファイル内の別の場所で 名前付きの update-autologger-install-section を参照する必要があります。 このような各セクションの形式は次のとおりです。

[update-autologger-install-section] 

(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section) 
… 

update-autologger-install-section では、 AddAutoLoggerProvider を使用して 1 つ以上の AutoLogger プロバイダーを個別の行に指定できます。 INF ファイル内の AutoLogger プロバイダーの詳細については、以下の「AutoLogger プロバイダーの追加」を参照してください。

Add-AutoLogger-Install-Section のエントリと値

開始=0 | 1
次回コンピューターが再起動されるときに AutoLogger を起動するかどうかを指定します。 AutoLogger を開始するには、この値を 1 に設定します。それ以外の場合は、この値を 0 に設定します。

BufferSize=buffer-size
オプションで、各バッファーのサイズを KB 単位で指定します。 BufferSize は 1 メガバイト未満にする必要があります。 ETW は、物理メモリのサイズを使用して、この値が設定されていない場合に計算します。

ClockType=clock-type
必要に応じて、次の数値を使用して各イベントのタイム スタンプをログに記録するときに使用するタイマーを 10 進表記または次の一覧に示すように 16 進表記で指定します。 省略すると、既定値 は 0x1 (パフォーマンス カウンター値) になります。

0x1 (パフォーマンス カウンター値)

0x2 (システム タイマー)

0x3 (CPUサイクルカウンタ)

各クロックの種類の説明については、 WNODE_HEADERの ClientContext メンバーを参照してください。

DisableRealtimePersistence=0 | 1
必要に応じて、値を 1 に設定して、リアルタイム永続化を無効にできます。 既定値は 0 (有効) です。 リアルタイム永続化が有効になっている場合、コンピューターがシャットダウンされた時点までに配信されなかったリアルタイム イベントは保持されます。 その後、コンシューマーが次にセッションに接続すると、イベントがコンシューマーに配信されます。

FileName=ファイル名
必要に応じて、ログ ファイルの完全修飾パスを指定します。 パスが存在しない場合は、AutoLogger の初回起動時にベスト エフォート作成が行われます。 FileName の長さ は1024文字に制限されています。 ファイルはシーケンシャル ログ ファイルです。 既定のファイル パスは %DriverData%\<SessionName>.etl です。

FileMax=file-max
必要に応じて、ETW によって作成されるログ ファイルのインスタンスの最大数を指定します。 ファイルの最大数が作成されると、ETW は最初のファイル (存在する場合) を上書きします。 サポートされるログ・ファイルのインスタンスの最大数は16です。 この機能は、EVENT_TRACE_FILE_MODE_NEWLINE LogFileMode では使用しないでください。

FlushTimer=flush-timer
必要に応じて、トレース バッファーを強制的にフラッシュする頻度 (秒単位) を指定します。 最小フラッシュ時間は 1 秒です。 既定値は0です。 既定では、バッファーは満杯の場合にのみフラッシュされます。

LogFileMode=log-file-mode
必要に応じて、1 つ以上のログ モードを指定します。 使用可能な値については、「ロギング モード定数」を参照してください。 既定値は 0x1 (EVENT_TRACE_FILE_MODE_SEQUENTIAL) です。

MaxFileSize=max-file-size
必要に応じて、各ログ・ファイルの最大サイズをメガバイト (MB) 単位で指定します。 セッションは、 LogFileMode でEVENT_TRACE_FILE_MODE_CIRCULARが指定されていない限り、最大サイズに達すると閉じられます。 制限を指定しない場合は、値を 0 に設定します。 既定値は 100 mb です。 最大ファイル サイズに達したときに発生する動作は、 LogFileModeの値によって異なります。

MaximumBuffers=maximum-buffers
必要に応じて、割り当てるバッファーの最大数 (通常はバッファーの最小数に 20 を加えた数) を指定します。 この値は、 MinimumBuffersの値以上でなければなりません。

MinimumBuffers=minimum-buffers
必要に応じて、起動時に割り当てるバッファーの最小数を指定します。 指定できるバッファーの最小数は、プロセッサごとに 2 つのバッファーです。

AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section
必要に応じて、INF ファイル内の別の場所にある INF ライター定義の自動ロガー プロバイダー インストール セクションを参照するサブディレクティブを持つプロバイダーを指定します。 詳細については、次 の「自動ロガー プロバイダーの追加」セクションを 参照してください。

AutoLogger プロバイダーの追加

add-autologger-install-section セクションと update-autologger-install-section セクション内で、 AddAutoLoggerProvider ディレクティブを使用してセッションで有効にするプロバイダーを指定できます。

ProviderGUID は、AutoLogger プロバイダーを識別する GUID 値である必要があります。 これは {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} の形の明示的なGUID値として表現できます。または、INFファイルの Strings セクションの {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} に定義された% strkey %トークンとして定義されます。

AddAutoLoggerProvider サブディレクティブは、ファイル内の別の場所で autologger-provider-install-section も参照する必要があります。 このような各セクションの形式は次のとおりです。

[autologger-provider-install-section] 

[Enabled=<0 | 1>] 
[EnableFlags=enable-flags] 
[EnableLevel=enable-level] 
[EnablePropety=enable-property] 
[MatchAnyKeyword=match-any-keyword] 
[MatchAllKeyword=match-all-keyword] 

AutoLogger-Provider-Install-Section のエントリと値

有効=0 | 1
必要に応じて、プロバイダーが有効かどうかを指定します。 プロバイダーを有効にするには、この値を 1 に設定します。 無効にするには、この値を 0 に設定します。 既定値は0です。

EnableFlags=enable-flags
必要に応じて、プロバイダーがイベントを生成するイベントのクラスを指定します。 詳細については、 EnableTraceEx 関数の EnableFlags パラメーターを参照してください。 プロバイダーが MatchAnyKeyword または MatchAllKeyword をサポートしていない場合は、この値の名前を指定します。

EnableLevel=enable-level
必要に応じて、イベントに含まれる詳細レベルを指定します。 定義済みのレベルの一覧については、 EnableTraceEx 関数の Level パラメーターを参照してください。

EnableProperty=enable-property
必要に応じて、ログ ファイルに次の項目の 1 つ以上を含めます。

0x00000001 (EVENT_ENABLE_PROPERTY_SID) = ユーザーのセキュリティ識別子 (SID) を拡張データに含めます。

0x00000002 (EVENT_ENABLE_PROPERTY_TS_ID) = 拡張データにターミナル セッション識別子を含めます。

0x00000004 (EVENT_ENABLE_PROPERTY_STACK_TRACE) = EventWrite を使用して書き込まれたイベントの呼び出し履歴トレースを拡張データに含めます。

0x00000010 (EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0) = 0 以外のキーワード (keyword)が指定されていないすべてのイベントをフィルターで除外します。

0x00000020 (EVENT_ENABLE_PROPERTY_PROVIDER_GROUP) = EnableTraceEx2 へのこの呼び出しで、個々のイベント プロバイダーではなく プロバイダー グループ を有効にする必要があることを示します。

0x00000080 (EVENT_ENABLE_PROPERTY_PROCESS_START_KEY) = 拡張データにプロセス開始キーを含めます。

0x00000100 (EVENT_ENABLE_PROPERTY_EVENT_KEY) = 拡張データにイベント キーを含めます。

0x00000200 (EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE) = InPrivate イベントとしてマークされているか、InPrivate としてマークされているプロセスから取得されたすべてのイベントをフィルターで除外します。

MatchAnyKeyword=match-any-keyword
必要に応じて、プロバイダーが書き込むイベントのカテゴリを決定するキーワード (keyword)のビットマスクを提供します。 イベントのキーワード ビットのいずれかがこのマスクに設定されているビットのいずれかに一致する場合、プロバイダーはイベントを書き込みます。 プロバイダーがすべてのイベントを書き込むよう指定するには、この値を 0 に設定します。 例については、 EnableTraceEx 関数の「解説」セクションを参照してください。

MatchAllKeyword=match-all-keyword
必要に応じて、プロバイダーが書き込むイベントのカテゴリを制限します。 イベントのキーワードが MatchAnyKeyword 条件を満たす場合、プロバイダーは、このマスク内のすべてのビットがイベントのキーワードに存在する場合にのみ、イベントを書き込みます。 MatchAnyKeyword が 0 の場合、このマスクは使用されません。 例については、 EnableTraceEx 関数の「解説」セクションを参照してください。

[Contoso_Add_AutoLogger_Inst] 
Start = 1 
FileName = %%DriverData%%\Contoso\AutoLoggerLogFile.etl  
AddAutoLoggerProvider = {4b8b1947-ae4d-54e2-826a-1aee78ef05b2}, Contoso_Provider_1_Inst

[Contoso_Update_AutoLogger_Inst] 
AddAutoLoggerProvider= {a55d5a23-1a5b-580a-2be5-d7188f43fae1}, Contoso_Provider_2_Inst

[Contoso_Provider_1_Inst] 
Enabled = 1
EnableProperty = 0x00000001

[Contoso_Provider_2_Inst] 
Enabled = 1 

レガシ互換性

AddAutoLogger ディレクティブと UpdateAutoLogger ディレクティブは、Windows 11 以降でサポートされています。 ダウンレベル OS で AutoLogger を構成するには、 AddReg ディレクティブを使用します。

[Contoso_AutoLogger_AddReg] 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,Start,0x00010001,1 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,GUID,,{autologger-guid} 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>\{autologger-provider-guid},Enabled,0x00010001,1 

参照

DDInstall.Events