(MOF) 類別設計 Managed 物件格式

WMI 提供者是由 Managed 物件格式所組成, (MOF) 檔案和 DLL 檔案。 MOF 檔案會定義提供者實作提供資料的類別。

MOF 類別定義是由 mofcomp 公用程式編譯,並儲存在 WMI 存放庫中,也稱為 Common Information Model (CIM) 存放庫。 建立類別的較不常見方式是透過 適用于 WMI 的 COM API方法。

注意

若要確保如果 WMI 失敗並重新啟動,則 Managed 物件的所有 WMI 類別定義都會還原至 WMI 存放庫 ,請在 MOF 檔案中使用 #pragma自動復原 預處理器指令。

 

本主題將討論下列各節:

定義要管理的物件

在您識別要管理的企業部分之後,請定義要管理的物件。 定義必須包含必要的資料,並可讓您正確實作相關的商務規則。 您可以在細微層級定義物件,但最好在定義中包含的詳細資料層級之間決定,以及提供足夠詳細資料才能很有用。 程式初期的快捷方式可能會節省時間,但未來可能會造成更多工作。

分散式管理工作組 (DMTF) 網站的 CIM 教學課程包含設計程式的絕佳資訊。 如需詳細資訊,請參閱 www.dmtf.org

當您開發和實作架構設計時,請考慮下列因素:

  • 限定詞

    限定詞提供有關如何描述類別、物件、屬性、方法和參數的資訊;和 會套用至類別和屬性定義。 在 MOF 程式碼中,限定詞會以方括弧括住,而且可能包含 [索引鍵] 或 [關聯]。 如需詳細資訊,請參閱 新增限定詞WMI 限定詞

  • 命名空間

    命名空間是將類別和物件分組的邏輯單元,以及控制範圍和可見度。 一般而言,命名空間包含一組類別和物件,這些類別和物件代表特定環境中的 Managed 物件。 如需詳細資訊,請參閱 在 WMI 中建立階層。

  • Object

    模型化物件可能是架構的實體或邏輯專案。 例如,您可以建立實體磁片磁碟機的模型,例如硬碟,或是實體磁片上可以是磁碟分割的邏輯磁片。 使用類別來建立實體磁片磁碟機模型的設計,然後將該類別擴充為邏輯磁片模型,比嘗試為每個磁片類型建立個別類別的設計更具擴充性。

  • 資料

    資料可以是動態或靜態。 如果資料是動態的,您必須為其建立類別提供者。

    若要讓使用者修改資料,您必須使用使用者呼叫的方法,判斷是否要直接寫入或修改屬性。

定義屬性或方法

一般而言,WMI 類別屬性類似于 C++ 類別中的屬性。 如果您的程式碼針對資料片段實作的唯一動作是取得值或設定值,則資料應該定義為 WMI 類別的屬性。

WMI 方法通常會執行變更 Managed 物件狀態的動作。 例如,如果動作是要啟用或停用硬體物件的作業,則方法可能最好建立讀取/寫入屬性。 您也可以決定建立顯示硬體狀態的屬性。

當您建立類別或實例時,可以包含批註。 使用這項技術來記錄您的類別或說明您的程式設計技術。 如需詳細資訊,請參閱 建立批註。 此外,您可以新增資料來限定資料物件的用途。 如需詳細資訊,請參閱 新增限定詞

將物件關聯至彼此

有兩種方式可以彼此關聯物件:藉由建立個別物件和關聯物件來建立關聯物件,或藉由將一個物件內嵌在另一個物件中。 CIM 不支援内嵌物件,因此若要符合 CIM 標準,您必須使用第一個方法。 不過,WMI 支援内嵌物件,因此請使用任一方法來表示物件之間的關聯性。 您可以在 Win32 類別中找到内嵌物件的範例。 例如, Win32_SecurityDescriptor 具有内嵌物件 Win32_ACE,該物件具有另一個内嵌物件, Win32_Trustee

決定如何代表物件之間的關聯性時,請考慮下列事項:

開發 WMI 提供者

將資料提供給 WMI

MOF 資料類型