ローカライズされた MOF ファイルのコンパイル

言語に依存しない MOF ファイルと言語固有の MOF ファイルを作成するには、マスター MOF ファイルをコンパイルする必要があります。

コマンド プロンプトで次のコマンドを入力して、マスター MOF ファイルをコンパイルします。

mofcomp -MOF:Lnmof.mof -MFL:Lsmof.mfl -Amendment:MS_409 Mastermof.mof

このコマンドを実行すると、MOF コンパイラによって、元の Mastermof.mof ファイルから 2 つの MOF ファイルが作成されます。 MOF コンパイラによりは、言語に依存しないバージョンである Lnmof.mof が生成され、言語固有のすべての項目が削除されます。 2 つ目の言語固有バージョンである Lsmof.mof も作成されます。このファイルには、Mastermof.mof ファイルで Amended 修飾子フレーバーでマークされた項目のみが含まれています。

次のコード例は、生成される言語に依存しない MOF ファイル (Lnmof.mof) の内容を示しています。

#pragma namespace("\\\\.\\root")

Instance of __Namespace
{
  Name = "TEST";
};
#pragma namespace("\\\\.\\root\\TEST")

[LOCALE(1033)] 
class myclass
{
  [key] string Name;
  uint64 Value;
  uint64 Timestamp;
};

次のコード例は、生成される言語固有の MOF ファイル (Lsmof.mfl) の内容を示しています。

#pragma namespace("\\\\.\\root\\TEST")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\root\\TEST\\ms_409")

[Description("Localized version of MyClass for American English") :
    Amended, LOCALE(0x409)] 

class myclass
{
    [DisplayName("User Name") : Amended,
    Description("The Name property contains the name of the user") : 
    Amended, key]
     string Name;

    [DisplayName("Time Stamp") : Amended,
    Description("This property shows when the object was created") : 
    Amended] 
     uint64 Timestamp;
};

Amended 修飾子を含む MOF ファイルをコンパイルすると、言語に依存しない MOF ファイルと言語固有の MOF ファイルのみが生成されます。CIM リポジトリは、新しいクラス情報で更新されません。 クラス情報を WMI で使用できるようにするには、MOF コンパイラを使用して、最初のコンパイルで生成された 2 つの MOF ファイルをコンパイルする必要があります。

マスター MOF ファイルをコンパイルすると、Amended フレーバーを持つ修飾子のみが言語固有の MOF ファイルに移動されます。 Amended フレーバーを持たない修飾子はローカライズされず、言語に依存しない MOF ファイルの基本クラス定義にのみ存在します。 ローカライズされた説明を使用できない場合は、既定の説明に非ローカライズ修飾子を使用できます。

MOF コンパイラへの切り替えとして Amended を指定する代わりに、pragma amendment コマンドを使用できます。 これらのオプションはいずれも、MOF ファイルの言語固有および言語に依存しないバージョンを要求することと同じです。 pragma amendment コマンドまたは Amended コマンド ライン オプションのいずれかを使用する場合は、コマンド プロンプトで -MFL オプションと -MOF オプションを使用して出力ファイルの名前を指定する必要があります。

注意

MOF コンパイラによって生成される言語に依存しない MOF ファイルには、ロケール ID が 16 進数で入力された場合でも、この値に相当する 10 進数が含まれます。 上の例では、コンパイラによって、0x409 の値が Lnmof.mof 出力ファイルで 10 進数 1033 に変換されています。