事件來源

Eventlog 金鑰中的每個記錄都包含稱為事件來源的子機碼。 事件來源是記錄事件的軟體名稱。 如果應用程式很大,通常是應用程式的名稱或應用程式的子元件名稱。 您可以將最多 16,384 個事件來源新增至登錄。 安全性記錄僅供系統使用。 設備磁碟機應該將其名稱新增至 系統 記錄檔。 應用程式和服務應該將其名稱新增至 應用程式 記錄檔,或建立自訂記錄檔。

事件來源的結構如下所示:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            EventLog
               Application
                  AppName
               Security
               System
                  DriverName
               CustomLog
                  AppName

您無法使用已經作為記錄檔名稱的來源名稱。 此外,來源名稱不能是階層式名稱;也就是說,它們不能包含反斜線字元 (「\」) 。

每個事件來源都包含資訊 (,例如 訊息檔) 記錄事件的軟體特定資訊,如下表所示。

登錄值 描述
CategoryCount 支援的事件類別目錄數目。 此值的類型 為 REG_DWORD
CategoryMessageFile 類別訊息檔案的路徑。 類別訊息檔案包含描述類別的語言相依字串。 這個值的類型可以是 REG_SZREG_EXPAND_SZ
EventMessageFile 一或多個事件訊息檔案的路徑;使用分號分隔多個檔案。 事件訊息檔案包含描述事件的語言相依字串。 這個值的類型可以是 REG_SZREG_EXPAND_SZ
ParameterMessageFile 參數訊息檔的路徑。 參數訊息檔包含要插入事件描述字串中的與語言無關的字串。 這個值的類型可以是 REG_SZREG_EXPAND_SZ
TypesSupported 支援的型別位元遮罩。 此值的類型 為 REG_DWORD。 它可以是下列一或多個值:
EVENTLOG_AUDIT_FAILURE (0x0010)
EVENTLOG_AUDIT_SUCCESS (0x0008)
EVENTLOG_ERROR_TYPE (0x0001)
EVENTLOG_INFORMATION_TYPE (0x0004)
EVENTLOG_WARNING_TYPE (0x0002)

 

當應用程式使用 RegisterEventSourceOpenEventLog 函式來取得事件記錄檔的控制碼時,事件記錄服務會在登錄中搜尋指定的事件來源。 例如,應用程式記錄檔可能包含Microsoft SQL Server和Microsoft Excel的事件來源。 如果應用程式使用RegisterEventSourceOpenEventLog搭配 Application、SQL 或 Excel的來源名稱,事件記錄服務就會傳回Application記錄檔的控制碼。

應用程式可以使用 應用程式 記錄檔,而不需將新的事件來源新增至登錄。 如果應用程式呼叫 RegisterEventSource ,並傳遞登錄中找不到的來源名稱,則事件記錄服務預設會使用 應用程式 記錄檔。 不過,因為沒有任何訊息檔,所以事件檢視器無法將任何事件識別碼或事件類別對應至描述字串,而且會顯示錯誤。 基於這個理由,您應該將唯一的事件來源新增至應用程式的登錄,並指定訊息檔。