文章編號: 226494 - 上次校閱: 2009年2月26日 - 版次: 6.0

效能監視器延伸的事件

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

Windows Server 2003 和舊版 Microsoft Windows 作業系統事件報告應用程式事件記錄檔,有錯誤時。Windows 也會報告事件,以提供效能監視器延伸及自訂計數器的相關資訊。本文將告訴您,如何使用登錄設定來控制檢查和報告的錯誤。本文也列出可能的事件資訊。當您測試並驗證副檔名為效能監視器時,此資訊可能會很有用。該資訊也可能有助於診斷安裝成廠商的伺服器應用程式或裝置驅動程式的一部份的效能監視器延伸的問題。

其他相關資訊

登錄值

效能程式庫 (perflib) 一部分 ADVAPI32.dll,讀取控制不同層級的錯誤檢查和報告的三個 REG_DWORD 登錄值。這些值位於下列登錄機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
如果這些值並不存在,您可以加入值。在您重新啟動效能監視器] 或 [另一個效能監視工具之後,所作變更才會生效。

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,執行這些步驟時請務必小心。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756? (http://support.microsoft.com/kb/322756/ ) 如何備份和還原在 Windows 登錄
下列的值名稱被後面跟著可能的值和及其意義。
ExtCounterTestLevel

1  -  object and counter lengths are checked for consistency
2  -  buffer overflows or guard pages are checked
3  -  no checking is made but does not suppress exception handling

EventLogLevel

0  -  no errors are reported
1  -  user event log error messages (1000-1013)
2  -  warnings and errors used for debugging (1000-2002)
3  -  verbose, all information (1000-3000)
				
OpenProcedureWaitTime

如果 OpenProcedureWaitTime 值存在,perflib 設定逾時的程序內部。如果 開啟 效能監視器延伸 DLL 的函式不會傳回以毫秒為單位),指定時間內這個登錄值中事件 (2002) 張貼到 「 事件記錄檔。但是,只控制事實報告,它並不會控制行為。比方說如果 Open 函式 「 擱置 」 然後效能監視器處理程序將會 「 擱置 」 無論此登錄值的存在。

Windows 2000 的登錄值

以 Windows 2000 開始新的等候時間登錄項目已加入收集函式。稍早所述,先前的三個登錄值也在 Windows 2000 上運作。新的登錄項目被放在下列登錄機碼。
HKEY_LOCAL_MACHINE
      \SYSTEM
         \CurrentControlSet
            \Services
               \(service name)
                  \Performance
				
收集逾時

收集逾時時間 值是新 Windows 2000 中。附註中值的名稱空間。如果此值存在,perflib 設定逾時的程序內部。如果效能監視器延伸 DLL 收集 函式不會以毫秒為單位),指定時間內傳回此登錄值中事件 (1015) 張貼到 「 事件記錄檔。

開啟逾時

開啟逾時時間 值是新 Windows 2000 中。附註中值的名稱空間。如果此值存在,perflib 設定逾時的程序內部。如果 開啟 效能監視器延伸 DLL 的函式不會傳回以毫秒為單位),指定時間內這個登錄值中事件 (2002) 張貼到 「 事件記錄檔。

附註在 Windows 2000 OpenProcedureWaitTime 是全域所有效能擴充 DLL。如果 開啟舊檔等候逾時 的登錄值,也就是效能延伸 DLL 專屬,不存在,作業系統會使用通用的 OpenProcedureWaitTime 登錄值,如果存在。同樣地,如果 收集逾時 的登錄值不存在,作業系統會使用通用的 OpenProcedureWaitTime 登錄值如果有的話。如果 OpenProcedureWaitTime 登錄值不是存在的預設逾時值是 10,000 (毫秒)。

事件識別碼及描述

以下是事件識別碼] 及 [事件檢視器] 的 [詳細資料] 對話方塊中顯示詳細的錯誤文字的清單。部份下列項目也包括事件詳細資料的轉譯工作的其他資訊。而且,每個項目提供建議者或許能夠解決問題的專業技術層級。

許多下列說明,請參閱 [事件詳細資料] 對話方塊的 [資料] 欄位中的 DWORD。注意以位元組順序排列資料,來解譯在 Intel 的系統上的 DWORD 您必須閱讀 4 個位元組一次每個位元組反向順序。例如 05 00 00 C0 可能會出現在 [資料] 欄位,但 [DWORD 讀取 C0000005。

事件識別碼: 1000年
詳細說明文字:當嘗試從 (呼叫模組名稱),效能資料存取被拒 (使用者名稱)

解譯:下列機碼檢查的安全性存取權:
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
				
如果與用戶端執行緒關聯的使用者或處理程序權杖不在此機碼 ACL,然後公佈此事件。

專業知識:系統管理員

事件識別碼: 1001年
詳細資料文字: 為 (服務名稱) 服務的大於可用空間,可延伸計數器 DLL (DLL 名稱) 中的收集程序所傳回的緩衝區大小。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。溢位的大小是 DWORD 0 的資料。

解譯:Perflib 尋找開頭指標的資料緩衝區不指向超過緩衝區包括安全緩衝區的結尾。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1002年
詳細說明文字:守衛頁面中 「 可延伸計數器 DLL (DLL 名稱) 的 (服務名稱) 服務收集程序被修改。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。

解譯:Perflib 實作安全的緩衝區,填入一些簽章位元組緩衝區中新增一些空間。此事件表示延伸模組已寫入超過緩衝區結尾。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1003年
詳細說明文字:(服務名稱) 服務的 「 可延伸計數器 DLL (DLL 名稱) 所傳回之物件的物件長度不正確。傳回的物件長度總和與傳回緩衝區的大小不相符。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。傳回物件的計數是 DWORD 0 的資料。

解譯:收集的函式會傳回之後 perflib 驗證效能副檔名所傳回每個 PERF_OBJECT_TYPE 結構 TotalByteLength 成員。此錯誤事件表示問題與 PERF_OBJECT_TYPE 結構中的一或多個 TotalByteLength 值。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1004年
詳細說明文字:(服務名稱) 服務的 「 可延伸計數器 DLL (DLL 名稱) 所傳回的物件例項長度不正確。例項長度加上物件定義結構的總和與物件的大小不相符。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。有錯誤的物件標題索引是物件的資料 DWORD 0。

解譯:之後收集函式傳回 perflib 驗證 PERF_INSTANCE_DEFINITION ByteLengthPERF_COUNTER_BLOCK ByteLength 的成員若物件具有執行個體。此錯誤事件表示 ByteLength 成員是不正確。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1005年
詳細說明文字:找不到開啟 (開啟的程序名稱) 中的程序 DLL (DLL 名稱) (服務名稱) 服務。這項服務的效能資料將無法使用。錯誤狀態是 DWORD 0 的資料。

解譯:Perflib 呼叫 GetProcAddress 函式名稱指定為開啟的程序,在登錄中對延伸模組。此錯誤通常表示 「 找不到名稱任一個因為匯擴充 DLL 不正確地出或 DLL 已經以編譯 C + + 程式碼,且已不使用 extern"C"宣告。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1006年
詳細說明文字:找不到收集 (收集程序名稱) 中的程序 DLL (DLL 名稱) (服務名稱) 服務。這項服務的效能資料將無法使用。錯誤狀態是 DWORD 0 的資料。

解譯:Perflib 呼叫 GetProcAddress 函式名稱指定為對延伸模組登錄中收集的程序。此錯誤通常表示 「 找不到名稱任一個因為匯擴充 DLL 不正確地出或 DLL 已經以編譯 C + + 程式碼,且已不使用 extern"C"宣告。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1007年
詳細說明文字:找不到關閉 (關閉程序名稱) 中的程序 DLL (DLL 名稱) (服務名稱) 服務。這項服務的效能資料將無法使用。錯誤狀態是 DWORD 0 的資料。

解譯:Perflib 呼叫 GetProcAddress 函式名稱指定為關閉的程序,在登錄中對延伸模組。此錯誤通常表示 「 找不到名稱任一個因為匯擴充 DLL 不正確地出或 DLL 已經以編譯 C + + 程式碼,且已不使用 extern"C"宣告。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1008年
詳細說明文字:無法開啟舊檔的程序的 DLL (DLL 名稱) 中的服務 (服務名稱)。這項服務的效能資料將無法使用。傳回狀態碼是 DWORD 0。

解譯:如果副檔名為 Open 函式不會傳回 ERROR_SUCCESS,perflib 會將狀態碼張貼在 [資料] 欄位中的事件。這可能會用來協助判斷 Open 函式失敗的原因擴充功能的作者。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1009年
詳細說明文字:開啟舊檔的程序的 DLL (DLL 名稱) 中的服務 (服務名稱) 會產生例外狀況。這項服務的效能資料將無法使用。傳回的例外狀況代碼是 DWORD 0。

解譯:Perflib 呼叫效能擴充程式函式中結構化的例外處理常式 __try 區塊。 這被回傳如果發生例外狀況或是 RaiseException 被 開啟 的函式中呼叫。資料欄位將會有例外狀況代碼。比方說 C0000005 表示時發生存取違規。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1010年
詳細說明文字:收集程序 (服務名稱) 服務 (DLL 名稱) 的 DLL 中產生例外狀況或傳回無效的狀態。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。傳回的例外狀況或狀態碼是 DWORD 0。

解譯:Perflib 呼叫效能擴充程式函式中結構化的例外處理常式 __try 區塊。 這會回傳如果發生例外狀況或 RaiseException 所收集的函式中呼叫。資料欄位將會有例外狀況代碼。比方說 C0000005 表示時發生存取違規。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1011年
詳細說明文字:無法開啟 (服務名稱) 服務的指定程式庫檔案 (DLL 名稱)。這項服務的效能資料將無法使用。狀態碼是 DWORD 0 的資料。

解譯:Perflib 使用 LoadLibrary 開啟效能擴充功能。如果 LoadLibrary 失敗狀態碼從 GetLastError 張貼在 [資料] 欄位中的事件。比方說 7e 表示找不到 DLL 或程式庫在登錄中的名稱不正確。

專業知識:系統管理員或已命名的可延伸計數器 DLL 的開發人員

事件識別碼: 1012年
詳細說明文字:所報告的系統已早於最後一次一個閒置處理時間報告。這項資料會顯示目前的時間與最後的報告的時間,在系統閒置處理程序。

解譯:Perflib 不使用這個事件

專業知識:

事件識別碼: 1013年
詳細說明文字:在 「 可延伸計數器 DLL (DLL 名稱) (服務名稱) 服務的收集程序傳回比空間還要大的緩衝區配置,而且可能已損毀應用程式的堆積。這個 DLL 應該已停用,或從系統移除,直到問題已經獲得修正,以防止進一步的損毀。應該重新啟動應用程式存取這個效能資料。計數器 DLL 所傳回的效能資料不會傳回在效能資料區塊。溢位的大小是 DWORD 0 的資料。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1014年僅可在 Windows 2000 上
詳細說明文字:嘗試從伺服器物件收集資料時發生錯誤。函數所傳回的錯誤碼是 DWORD 0。在 IO 狀態區塊內傳回的狀態為 DWORD 1。 IO 狀態區塊中的 [資訊] 欄位為 DWORD 2。

解譯:perflib 不使用這個事件。

專業知識:

事件識別碼: 1015年僅可在 Windows 2000 上
詳細說明文字:效能資料集合函數 (函式名稱) 完成正在等候逾時已經過期。可能與該延伸計數器或從中收集資料服務發生問題。

專業知識:開發人員的已命名的可延伸計數器 DLL

解譯:請參閱關於收集逾時的登錄值的註解

事件識別碼: 1016年僅可在 Windows 2000 上
詳細說明文字:(服務名稱) 服務 (DLL 名稱) 程式庫中建立的資料緩衝區未對齊於 8 位元組界限上。這可能會造成嘗試讀取效能資料緩衝區的應用程式的問題。請連絡有修正此問題,或取得較新版本的這個文件庫這個文件庫或服務的製造商。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1017年僅可在 Windows 2000 上
詳細說明文字:從 (服務名稱) 服務的效能計數器資料收集已經停用,因為要由該服務的效能計數器程式庫所產生的一或多個錯誤。導致這個動作的錯誤已經寫入應用程式事件記錄檔。之前重新啟用此服務的效能計數器,應被更正此錯誤。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1018年僅可在 Windows 2000 上
詳細說明文字:從 (服務名稱) 服務的效能計數器資料收集已經停用,因為要由該服務的效能計數器程式庫所產生的一或多個錯誤在此工作階段。導致這個動作的錯誤已經寫入應用程式事件記錄檔。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1019年僅可在 Windows 2000 上
詳細說明文字:(服務名稱) 服務的 「 可延伸計數器 DLL (DLL 名稱) 所傳回的物件中的定義欄位不正確。物件定義結構中定義區塊長度總和與物件定義標頭中指定的大小不相符。傳回的 DLL 會是這個計數器的效能資料不會在效能資料區塊內傳回。 有錯誤的物件標題索引是物件的資料 DWORD 0。

解譯:類似事件 1003 除了已核取 [結構計數器定義長度成員的總和。這個事件通常表示其中一個計數器定義結構的效能資料物件的 ByteLength 不正確。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 1020年僅可在 Windows 2000 上
詳細說明文字:使用緩衝區的大小大於傳遞給收集 (DLL 名稱) 的函式 (服務名稱) 服務的 「 可延伸計數器 DLL。傳入的緩衝區的大小是 DWORD 0 的資料,傳回的大小是 DWORD 1 的資料。

解譯:類似事件 1001 除了提供預期由延伸緩衝區的大小的相關資訊。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 2000年
詳細說明文字:傳回的指標不符合由可延伸計數器 DLL (DLL 名稱) 中 (服務名稱) 服務收集程序傳回的緩衝區長度。長度將被調整成符合,而且效能資料將會出現在 Perf 資料區塊。傳回的長度是 DWORD 0 的資料,新的長度是 DWORD 1 的資料。

解譯:此事件是用於開發和偵錯的效能監視器延伸。收集程序呼叫傳回之後的一致性檢查參數。在這種情況下針對實際的差異在緩衝區指標之前,並收集程序呼叫後檢查加入至效能資料緩衝區的位元組數目。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 2001年
詳細說明文字:(服務名稱) 服務沒有效能子機碼或無法開啟索引鍵。沒有效能計數器收集此服務。Win32 錯誤的程式碼傳回於資料中。

解譯:此事件說出的項目在 [服務] 的子機碼並不包含效能子機碼 (或它無法被開啟,例如因為到安全性存取權)。這是公布出來讓服務子機碼下的每個項目。

專業知識:系統管理員或具名的服務的開發人員

事件識別碼: 2002年
詳細說明文字:服務 (服務名稱) 的 DLL (DLL 名稱) 中的開啟程序已經超過已建立的等候時間才能完成。等待時間 (以毫秒為單位) 會顯示資料。

解譯:請參閱稍早關於 開啟逾時 的登錄值註解。

專業知識:開發人員的已命名的可延伸計數器 DLL

事件識別碼: 2003年僅可在 Windows 2000 上
詳細說明文字:效能程式庫 (DLL 名稱) (服務名稱) 服務的組態資訊不符合儲存在登錄中的受信任的效能程式庫資訊。這個媒體櫃中的函式將不處理為受信任。

解譯:如果程式庫驗證程式碼 」 值存在效能子機碼中具名的服務,將會核對資料檔案建立時間和已命名的 DLL 的檔案大小。這個錯誤被回傳,如果不相符。如果此錯誤可能會修正藉由移除和重新安裝具名的服務。

專業知識:系統管理員或具名的服務的開發人員

事件識別碼: 3000
詳細說明文字:服務 (服務名稱) 的 DLL (DLL 名稱) 中的開啟程序被呼叫,而成功傳回。

專業知識:新手

?考

效能監視器延伸的更多有關,請參閱平台 SDK 的文件在 [Windows 基本服務 ; 效能監視 ; 效能資料 ; 新增效能計數器。

如需有關如何解決 2003年事件資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
267831? (http://support.microsoft.com/kb/267831/ ) 當載入效能計數器時,記錄事件識別碼 2003年警告訊息

這篇文章中的資訊適用於:
  • Microsoft Win32 Application Programming Interface?應用於:
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows XP Home Edition (家用版)
    • Microsoft Windows XP Professional
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows NT 4.0
關鍵字:?
kbmt kbarttypeinf kbinfo kbkernbase kbperfmon KB226494 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:226494? (http://support.microsoft.com/kb/226494/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。