Compartir a través de


Compilación e implementación del archivo MOF localizado

Las versiones internacionales de Windows XP y versiones posteriores del sistema operativo vienen en dos tipos: versiones de un solo idioma (localizadas) y versiones de interfaz de usuario multilanguage (MUI). Una versión MUI de Windows puede admitir varios idiomas simultáneamente.

Los controladores que se implementan en una versión localizada de Windows deben contener un recurso MOF que contenga la versión neutra del idioma de todas las clases, así como la modificación de idioma localizado y la modificación del idioma inglés americano.

En una versión MUI de Windows, la propia imagen del controlador debe contener las versiones de inglés estadounidense e independiente del idioma de las clases WMI. Para cada idioma adicional admitido, se puede colocar una imagen solo de recursos en el directorio %windir%\system32\drivers\MUI\langid , donde langid es el LCID de para la configuración regional.

Opcionalmente, la propia imagen del controlador puede contener todos los idiomas admitidos.

Si uno de estos mecanismos no admite un idioma, se usa la versión en inglés.

Crear archivos MOF distintos para cada idioma

Los escritores de controladores pueden usar un archivo de texto MOF maestro para contener la clase básica y todas sus modificaciones.

Puede usar el compilador MOF para generar un archivo que contenga las clases neutras del lenguaje, así como un archivo para contener las clases modificadas para un idioma determinado.

mofcomp -amendment:namespace [ -MOF:mof] [ -MFL:mfl] masterfile

El parámetro de espacio de nombres tiene el formato MS_XXX, donde XXX es el LCID para la configuración regional que se va a generar. El archivo mof creado contiene las clases neutras del idioma y el archivo mfl creado contiene las clases modificadas.

Al compilar el controlador en sistemas operativos basados en NT, puede combinar los dos archivos mediante el comando copy. En Windows 98/Me, el comando copy no anexa correctamente archivos Unicode, pero se puede usar el siguiente comando.

wmimofck localizedfile -ymof -zmfl

Puede combinar cualquier número de idiomas en un único archivo de texto.

A continuación, el archivo localizado se puede compilar en un archivo binario con el mismo método que para los archivos MOF que no se han localizado:

mofcomp -B:binaryfile localizedfile

Para una versión de un solo idioma de Windows, los controladores asocian el MOF binario como un recurso a la imagen del controlador. Consulte Compilación del archivo MOF de un controlador para obtener más información.

En un sistema MUI, la propia imagen del controlador debe compilarse para inglés americano. Para cada idioma adicional, instale cada archivo MOF binario localizado como un recurso en un archivo de imagen independiente en el directorio %windir%\system32\drivers\MUI\langid , donde langid es el LCID hexadecimal para la configuración regional (por ejemplo, 409 para inglés americano). El nombre de archivo debe ser drivername.sys o drivername.sys.mui, donde drivername.sys es el nombre del binario del controlador.

Creación de un archivo MOF para todos los idiomas admitidos

Si la imagen del controlador contendrá todos los idiomas admitidos, hay una manera más sencilla de crear un archivo MOF que admita todos los lenguajes. Mediante el uso de directivas #pragma en el archivo de texto MOF, los controladores también pueden combinar todas las clases modificadas en un binario. Dado que cada localización existe en un espacio de nombres distinto, se pueden combinar de forma segura en un único binario.

Al escribir el archivo de texto MOF combinado, los escritores de controladores deben preceder a cada declaración de clase modificada con una directiva #pragma como se indica a continuación.

#pragma namespace ("namespace")

donde namespace es el espacio de nombres correcto para la declaración. Por ejemplo, la declaración de clase modificada para inglés americano debe ir precedida de una declaración del formulario:

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

Por ejemplo, declara una clase y sus modificaciones de la siguiente manera.

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

[guid(xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx)]
class MyClass 
{
}

#pragma namespace(\\\\.\\root\\wmi\\ms_409)
[amendment, locale(0x407)]
class MyClass
{
}

Con este enfoque, compilar el archivo MOF binario es idéntico al enfoque no localizado. Consulte Compilación del archivo MOF de un controlador para obtener más información.