Поделиться через


Компиляция локализованных MOF-файлов

Необходимо скомпилировать MOF-файл master, чтобы создать MOF-файлы, не зависящие от языка и зависящие от языка.

Введите следующую команду в командной строке, чтобы скомпилировать MASTER MOF-файл.

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

При выполнении этой команды компилятор MOF создает два MOF-файла из исходного файла Mastermof.mof. Компилятор MOF создает нейтральную для языка версию Lnmof.mof, в которой удаляются все элементы для конкретного языка. Также создается вторая версия Lsmof.mof для конкретного языка; Этот файл содержит только элементы, которые были помечены измененным вкусом квалификатора в файле Mastermof.mof.

В следующем примере кода показано содержимое сгенерированного 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;
};

Компиляция MOF-файла с помощью измененного квалификатора создает только отдельные MOF-файлы, не зависящие от языка и зависящие от языка; Репозиторий CIM не обновляется новыми сведениями о классе. Необходимо использовать компилятор MOF для компиляции двух MOF-файлов, созданных первой компиляцией, прежде чем какие-либо сведения о классах будут доступны WMI.

При компиляции master MOF-файл в MOF-файл перемещаются только квалификаторы с измененным вариантом. Квалификаторы без измененного варианта не локализованы и существуют только в определении базового класса в MOF-файле, не зависящий от языка. Нелокализованные квалификаторы можно использовать для описаний по умолчанию, если локализованные описания недоступны.

Вы можете использовать команду pragma amendment вместо указания Amended в качестве параметра компилятора MOF. Любой из этих вариантов эквивалентен запросу версий MOF-файла, зависящих от языка и не зависящих от языка. При использовании команды pragma amendment или параметра командной строки Amended необходимо указать имя выходных файлов с помощью параметров -MFL и -MOF в командной строке.

Примечание

MoF-файл, не зависящий от языка, создаваемый компилятором MOF, содержит десятичный эквивалент идентификатора языкового стандарта, даже если это значение было введено в шестнадцатеричном формате. В приведенном выше примере компилятор преобразовал значение 0x409 в десятичное число 1033 для выходного файла Lnmof.mof.