撰寫從 Win32_PerfRawData衍生類別的高效能提供者時,您必須遵循特定慣例,讓 WMI 可以將數據填充到屬性值中。
注意
不建議在任何版本的 Windows 作業系統上撰寫 WMI 高效能提供者來建立效能計數器。 如需詳細資訊,請參閱 將實例提供者變成 High-Performance 提供者和 效能連結庫和 WMI。
下列程序說明如何透過您的高效能提供者支援 Win32_PerfRawData 類別。
支援Win32_PerfRawData類別
在 Root\CIMv2 命名空間中建立您的類別。
類別必須衍生自 Win32_PerfRawData,並且將 Hiperf 限定符設定為 TRUE。 您也可以將 WDM (驅動程式) 效能資料類別新增至 root\wmi 命名空間。 如需為 WMI 建立您自己的類別的詳細資訊,請參閱 設計受管理物件格式(MOF)類別。
在 提供者 限定符中,將提供者指定為 「NT5_GenericPerfProvider_V1」。
指定下列類別層級限定符:
- HiPerf
- 地區設定
- PerfDetail
- 提供者
如需詳細資訊,請參閱 性能計數器類別的類別限定符。 請勿定義 GenericPerfCtr 限定符,因為這是保留給將效能連結庫數據傳輸到 WMI 類別的 ADAP 程式。
填入用來計算計數器類型公式的適當時間戳和頻率屬性。
這些屬性會繼承自 Win32_PerfRawData,而且,如果您要撰寫高效能提供者,則必須填寫這些屬性,讓類別顯示在系統監視器中。
在您的類別中包含一個名為 Name 的關鍵屬性(這個屬性對於單例類別來說不是必需的)。
除了 Name 屬性以外,您不得在類別中使用任何其他鍵值屬性。
建立屬性數據類型為 DWORD (uint32) 或 QWORD (uint64)。 這些屬性會在傳送至性能連結庫時變成性能計數器。
請為類別中所有屬性指定以下屬性級別的限定詞:
- DisplayName
- 計數類型
- DefaultScale
- 描述
- PerfDefault
- PerfDetail
如需詳細資訊,請參閱性能計數器類別 屬性限定子。 此外,Winperf.h 頭檔包含您可以針對 perfDetail 和 CounterType指定的值。
WMI 會使用 DisplayName、地區設定,以及 描述 限定符進行當地語系化。 您必須將修訂的限定元新增至 MS_409 (英文) 命名空間,讓系統監視器能夠正確顯示您的類別數據。 這表示您藉由使用說明文字新增 Description 限定符,並填入 DisplayName 值,來修改屬性定義。 您也必須將修改的限定元新增至類別支援的任何其他地區設定命名空間。 如果使用者從您未提供修訂限定符的地區設定要求數據,WMI 會預設為MS_409命名空間中指定的定義。
針對任何具有預期基底值之計數器類型的屬性,建立基底屬性。
這個屬性緊接在另一個屬性之後,並被命名為 propertyname**_Base**。 例如,Win32_PerfRawData_PerfDisk_LogicalDisk 類別中avgDiskBytesPerRead 的平均屬性 需要名為 AvgDiskBytesPerRead_Base 的基底屬性來計算樣本數目。 若要判斷您想要使用的計數器類型是否需要基底屬性,請在 WMI 性能計數器類型中依名稱或十進位值找出計數器類型。
相關主題