Erstellen und Bereitstellen der lokalisierten MOF-Datei
Internationale Versionen von Windows XP und höheren Versionen des Betriebssystems gibt es in zwei Varianten: einsprachige (lokalisierte) Versionen und MUI-Versionen (Multilanguage User Interface). Eine MUI-Version von Windows kann mehrere Sprachen gleichzeitig unterstützen.
Treiber, die in einer lokalisierten Version von Windows bereitgestellt werden, sollten eine MOF-Ressource enthalten, die die sprachneutrale Version aller Klassen sowie die lokalisierte Sprachänderung und die amerikanische Englische Sprachänderung enthält.
In einer MUI-Version von Windows sollte das Treiberimage selbst die sprachneutrale und amerikanische Englische Version der WMI-Klasse enthalten. Für jede zusätzliche unterstützte Sprache kann ein reines Ressourcenimage im Verzeichnis %windir%\system32\drivers\MUI\langid platziert werden, wobei langid die LCID für das Gebietsschema ist.
Optional kann das Treiberimage selbst jede unterstützte Sprache enthalten.
Wenn eine Sprache von einem dieser Mechanismen nicht unterstützt wird, wird die englische Sprachversion verwendet.
Erstellen unterschiedlicher MOF-Dateien für jede Sprache
Treiberautoren können eine master MOF-Textdatei verwenden, um die Basisklasse und alle zugehörigen Änderungen zu enthalten.
Sie können den MOF-Compiler verwenden, um eine Datei mit den sprachneutralen Klassen sowie eine Datei zu generieren, die die geänderten Klassen für eine bestimmte Sprache enthält.
mofcomp -amendment:namespace [ -MOF:mof] [ -MFL:mfl] masterfile
Der Namespaceparameter hat das Format MS_XXX, wobei XXX der LCID für das zu generierende Gebietsschema ist. Die erstellte mof-Datei enthält die sprachneutralen Klassen, und die erstellte mfl-Datei enthält die geänderten Klassen.
Wenn Sie Ihren Treiber unter NT-basierten Betriebssystemen erstellen, können Sie die beiden Dateien mithilfe des Kopierbefehls zusammenführen. Unter Windows 98/Me fügt der Kopierbefehl Unicode-Dateien nicht ordnungsgemäß an, aber der folgende Befehl kann verwendet werden.
wmimofck localizedfile -ymof -zmfl
Sie können eine beliebige Anzahl von Sprachen in einer einzelnen Textdatei kombinieren.
Die lokalisierte Datei kann dann mit der gleichen Methode wie für die nicht lokalisierten MOF-Dateien in eine Binärdatei kompiliert werden:
mofcomp -B:binaryfile localizedfile
Bei einer einsprachigen Version von Windows fügen Treiber die binäre MOF als Ressource an das Treiberimage an. Weitere Informationen finden Sie unter Kompilieren einer MOF-Datei des Treibers .
Auf einem MUI-System muss das Treiberimage selbst für amerikanisches Englisch erstellt werden. Installieren Sie für jede zusätzliche Sprache jede lokalisierte binäre MOF-Datei als Ressource in einer separaten Imagedatei im entsprechenden Verzeichnis %windir%\system32\drivers\MUI\langid , wobei langid die hexadezimale LCID für das Gebietsschema ist (z. B. 409 für amerikanisches Englisch). Der Dateiname muss entwederdrivername.sys oder drivername.sys.mui sein, wobei drivername.sys der Name der Treiberbinärdatei ist.
Erstellen einer MOF-Datei für alle unterstützten Sprachen
Wenn das Treiberimage jede unterstützte Sprache enthält, gibt es eine einfachere Möglichkeit, eine MOF-Datei zu erstellen, die jede Sprache unterstützt. Durch Die Verwendung #pragma-Anweisungen in der MOF-Textdatei können Treiber auch alle geänderten Klassen in einer Binärdatei kombinieren. Da jede Lokalisierung in einem eigenen Namespace vorhanden ist, können sie sicher in einer einzelnen Binärdatei kombiniert werden.
Beim Schreiben der kombinierten MOF-Textdatei müssen Treiberschreiber jeder geänderten Klassendeklaration wie folgt eine #pragma-Anweisung vorangestellt werden.
#pragma namespace ("namespace")
wobei namespace
der richtige Namespace für die Deklaration ist. Beispielsweise muss der geänderten Klassendeklaration für amerikanisches Englisch eine Deklaration des Formulars vorangestellt werden:
#pragma namespace ("\\\\.\\root\\wmi\\ms_409")
Beispielsweise deklarieren Sie eine Klasse und ihre Änderungen wie folgt.
#pragma namespace ("\\\\.\\root\\wmi)
[guid(xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx)]
class MyClass
{
}
#pragma namespace(\\\\.\\root\\wmi\\ms_409)
[amendment, locale(0x407)]
class MyClass
{
}
Bei diesem Ansatz ist das Erstellen der binären MOF-Datei mit dem nicht lokalisierten Ansatz identisch. Weitere Informationen finden Sie unter Kompilieren einer MOF-Datei des Treibers .