Компиляция локализованных 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.