共用方式為


INF AddAutoLogger 和 UpdateAutoLogger 指示詞

AddAutoLoggerUpdateAutoLogger 指示詞會在 INF DDInstall中使用。事件區段。 他們會指定 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 檔案之Strings區段中定義的 {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} %strkey% 權杖表示。

add-autologger-install-section
參考 INF 寫入器定義的區段,其中包含註冊 AutoLogger 的資訊。 如需詳細資訊,請參閱下列一節。

update-autologger-install-section
參考 INF 寫入器定義的區段,其中包含將提供者新增至現有 AutoLogger 的資訊。 如需詳細資訊,請參閱下列一節。

備註

如需 AutoLogger 的詳細資訊,請參閱 設定和啟動 AutoLogger 會話

每個 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-section 都必須提供 Start。 或者,使用 AddAutoLoggerProvider為 AutoLogger 指定一或多個 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來指定一或多個 AutoLogger 提供者,每一行各一個。 如需 INF 檔案中 AutoLogger 提供者的詳細資訊,請參閱下方 的新增 AutoLogger 提供者

Add-AutoLogger-Install-Section 專案和值

開始=0 | 1
指定下次重新開機電腦時,AutoLogger 是否會啟動。 若要啟動 AutoLogger,請將此值設定為 1,否則請將此值設定為 0。

BufferSize=buffer-size
選擇性地指定每個緩衝區的大小,以 KB 為單位。 BufferSize 應該小於一 MB。 ETW 會使用實體記憶體的大小,在未設定此值時計算此值。

ClockType=clock-type
選擇性地指定使用下列數值記錄每個事件的時間戳記時要使用的計時器,以十進位標記法表示,或如下列清單所示,以十六進位標記法表示。 如果省略,則預設會 0x1 (效能計數器值) 。

0x1 (效能計數器值)

0x2 (系統計時器)

0x3 (CPU 迴圈計數器)

如需每個時鐘類型的描述,請參閱 WNODE_HEADER的 ClientCoNtext 成員。

DisableRealtimePersistence=0 | 1
選擇性地允許將值設定為 1 來停用即時持續性。 預設值為 0 (啟用) 。 如果已啟用即時持續性,則會保存電腦關機時未傳遞的即時事件。 然後,當取用者下次連線到會話時,事件就會傳遞給取用者。

檔案名=file-name
選擇性地指定記錄檔的完整路徑。 如果路徑不存在,則第一次啟動 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
選擇性地指定一或多個記錄模式。 如需可能的值,請參閱 記錄模式常數。 預設值 為 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
選擇性地指定要在啟動時配置的緩衝區數目下限。 您可以指定的緩衝區數目下限是每個處理器的兩個緩衝區。

AddAutoLoggerProvider={ProviderGUID}autologger-provider-install-section
選擇性地指定具有子指示詞的提供者,該子指示詞會參考 INF 檔案中其他位置的 INF-writer-defined autologger-provider-install-section。 如需詳細資訊,請參閱下列 新增 AutoLogger 提供者 一節。

新增 AutoLogger 提供者

add-autologger-install-sectionupdate-autologger-install-section 區段中 ,您可以使用 AddAutoLoggerProvider 指示詞指定要在會話中啟用的提供者。

ProviderGUID必須是識別 AutoLogger 提供者的 GUID 值。 這可以表示為 {nnnnnnnn-nnnn-nnnn-nnnn-nnnn-nn} 格式的明確 GUID 值,或以定義至 INF 檔案之 Strings 區段中的 {nn-nnnn-nn-nn} 的 %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參數。 如果提供者不支援 MatchAnyKeywordMatchAllKeyword,請指定這個值名稱。

EnableLevel=enable-level
選擇性地提供事件中包含的詳細資料層級。 如需預先定義的層級清單,請參閱EnableTraceEx函式的Level參數。

EnableProperty=enable-property
選擇性地在記錄檔中包含下列一或多個專案:

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) = 篩選出未指定非零關鍵字的所有事件。

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_INPRI加值稅E) = 篩選出標示為 InPrivate 事件或來自標示為 InPrivate 的進程的所有事件。

MatchAnyKeyword=match-any-keyword
選擇性地提供關鍵字的位元遮罩,以決定您想要提供者寫入的事件類別。 如果事件的任何關鍵字位符合此遮罩中設定的任何位,提供者就會寫入事件。 若要指定提供者寫入所有事件,請將此值設定為零。 如需範例,請參閱 EnableTraceEx 函式的一節。

MatchAllKeyword=match-all-keyword
選擇性地限制您想要提供者寫入的事件類別。 如果事件的關鍵字符合 MatchAnyKeyword 條件,則提供者只有在此遮罩中的所有位都存在於事件的 關鍵字中時,提供者才會寫入事件。 如果 MatchAnyKeyword 為零,則不會使用此遮罩。 如需範例,請參閱 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 

舊版相容性

從 Windows 11 開始支援 AddAutoLogger 和 UpdateAutoLogger 指示詞。 若要在舊版 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。事件