Windows 事件
事件通常用於針對應用程式和驅動程式軟體進行疑難解答。
- 在 Windows Vista 之前,您會使用 windows 事件追蹤 或 事件記錄 來記錄事件。
- Windows Vista 引進了新的事件模型,可整合 Windows 事件追蹤 (ETW) 和 Windows 事件記錄檔 API。
- Windows 10 引進了 TraceLogging,其建置在 ETW 上,並提供簡化的方式來檢測原生、.NET 和 WinRT 開發人員的程式代碼。
新的 TraceLogging 模型可讓您包含結構化數據與事件、相互關聯事件,而且不需要個別的檢測指令清單 XML 檔案。
Windows Vista 模型會使用 XML 指令清單來定義您想要發佈的事件。 事件可以發佈至通道或 ETW 工作階段。 您可以將事件發佈至下列類型的通道:管理員、作、分析和偵錯。 如果您只使用 ETW 來啟用發行者,則不需要在指令清單中指定通道。 如需撰寫指令清單的完整詳細數據,請參閱 撰寫檢測指令清單,如需通道的相關信息,請參閱 定義通道。
若要註冊事件發行者和發佈事件,您可以使用 ETW API。 如需詳細資訊,請參閱 提供事件 和 開發提供者。 如果已啟用事件發行者,事件發行者會自動將事件寫入指令清單中指定的通道。
如果您想要控制事件發行者以更精細的粒度層級發佈的事件,請使用 ETW API。 例如,如果指令清單同時定義寫入和讀取事件,您就只能啟用寫入事件。 事件也可以指定層級值,例如警告或錯誤,因此您可以限制寫入至指定錯誤層級的事件。 如需詳細資訊,請參閱 控制事件追蹤工作階段。 事件會寫入會話的記錄檔。
取用事件涉及從事件通道、事件記錄檔 (.evtx 或 .evt 檔案)、追蹤檔案 (.etl 檔案) 或即時 ETW 會話擷取事件。 若要從 ETW 追蹤檔案或即時 ETW 工作階段取用事件,請使用 ETW 中的追蹤資料協助程式 (TDH) 函式來取用事件。 您也可以使用 TDH 來讀取事件元數據。 如需詳細資訊,請參閱 取用事件。 若要從事件通道或事件記錄檔取用事件,請使用 Windows 事件記錄函式來查詢或訂閱事件。 如需詳細資訊,請參閱 查詢事件 或 訂閱事件。
在 Windows Vista 之前,您必須使用 Windows 或 事件記錄 事件追蹤來發佈及取用事件。