다음을 통해 공유


지역화된 MOF 파일 빌드 및 배포

Windows XP 및 이후 버전의 운영 체제는 단일 언어(지역화된) 버전과 MUI(다국어 사용자 인터페이스) 버전의 두 가지 버전으로 제공됩니다. Windows의 MUI 버전은 여러 언어를 동시에 지원할 수 있습니다.

지역화된 Windows 버전에 배포된 드라이버에는 모든 클래스의 언어 중립적 버전과 지역화된 언어 수정 및 미국 영어 수정 사항이 포함된 MOF 리소스가 포함되어야 합니다.

Windows의 MUI 버전에서 드라이버 이미지 자체에는 WMI 클래스의 언어 중립적 및 미국 영어 버전이 포함되어야 합니다. 지원되는 각 추가 언어에 대해 리소스 전용 이미지를 %windir%\system32\drivers\MUI\langid 디렉터리에 배치할 수 있습니다. 여기서 langid 는 로캘에 대한 의 LCID입니다.

필요에 따라 드라이버 이미지 자체에는 지원되는 모든 언어가 포함될 수 있습니다.

이러한 메커니즘 중 하나에서 언어를 지원하지 않는 경우 영어 버전이 사용됩니다.

각 언어에 대한 고유한 MOF 파일 빌드

드라이버 작성기는 하나의 master MOF 텍스트 파일을 사용하여 기본 클래스와 모든 수정 내용을 포함할 수 있습니다.

MOF 컴파일러를 사용하여 특정 언어에 대해 수정된 클래스를 포함하는 파일뿐만 아니라 언어 중립적 클래스가 포함된 파일을 생성할 수 있습니다.

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

네임스페이스 매개 변수는 MS_XXX 형식입니다. 여기서 XXX는 생성할 로캘의 LCID입니다. 만든 mof 파일에는 언어 중립 클래스가 포함되고 생성된 mfl 파일에 수정된 클래스가 포함됩니다.

NT 기반 운영 체제에서 드라이버를 빌드할 때 복사 명령을 사용하여 두 파일을 병합할 수 있습니다. Windows 98/Me에서 복사 명령은 유니코드 파일을 올바르게 추가하지 않지만 다음 명령을 사용할 수 있습니다.

wmimofck localizedfile -ymof -zmfl

원하는 수의 언어를 단일 텍스트 파일로 결합할 수 있습니다.

그런 다음 지역화되지 않은 MOF 파일과 동일한 방법으로 지역화된 파일을 이진 파일로 컴파일할 수 있습니다.

mofcomp -B:binaryfile localizedfile

단일 언어 버전의 Windows의 경우 드라이버는 이진 MOF를 드라이버 이미지에 리소스로 연결합니다. 자세한 내용은 드라이버의 MOF 파일 컴파일 을 참조하세요.

MUI 시스템에서는 미국 영어용으로 드라이버 이미지 자체를 빌드해야 합니다. 각 추가 언어에 대해 각 지역화된 이진 MOF 파일을 적절한 %windir%\system32\drivers\MUI\langid 디렉터리에 있는 별도의 이미지 파일에 리소스로 설치합니다. 여기서 langid 는 로캘의 16진수 LCID입니다(예: 미국 영어의 경우 409). 파일 이름은 drivername.sys 또는 drivername.sys.mui여야 합니다. 여기서 drivername.sys 드라이버 이진 파일의 이름입니다.

지원되는 모든 언어에 대한 하나의 MOF 파일 빌드

드라이버 이미지에 지원되는 모든 언어가 포함된 경우 모든 언어를 지원하는 MOF 파일을 빌드하는 더 간단한 방법이 있습니다. MOF 텍스트 파일에서 #pragma 지시문을 사용하면 드라이버는 수정된 모든 클래스를 하나의 이진 파일로 결합할 수도 있습니다. 각 지역화는 고유한 네임스페이스에 있으므로 단일 이진 파일로 안전하게 결합할 수 있습니다.

결합된 MOF 텍스트 파일을 작성할 때 드라이버 작성기는 다음과 같이 #pragma 지시문을 사용하여 수정된 각 클래스 선언 앞에 와야 합니다.

#pragma namespace ("namespace")

여기서 namespace 는 선언에 대한 올바른 네임스페이스입니다. 예를 들어 미국 영어에 대한 수정된 클래스 선언 앞에 양식 선언이 있어야 합니다.

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

예를 들어 다음과 같이 클래스 및 해당 수정을 선언합니다.

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

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

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

이 방법을 사용하면 이진 MOF 파일을 빌드하는 것은 로컬화되지 않은 접근 방식과 동일합니다. 자세한 내용은 드라이버의 MOF 파일 컴파일 을 참조하세요.