다음을 통해 공유


WMI 클래스 이름 및 기본 클래스

WMI 클래스 이름은 대/소문자를 구분하지 않으며 문자로 시작해야 하며 밑줄로 시작하거나 끝낼 수 없습니다. 나머지 문자는 모두 문자, 숫자 또는 밑줄이어야 합니다.

WMI 클라이언트 애플리케이션은 드라이버의 WMI 클래스 이름에 액세스하여 사용자에게 표시할 수 있습니다. 설명 클래스 이름을 사용하면 클래스를 보다 직관적으로 사용할 수 있습니다.

WMI 클래스 이름은 WMI 네임스페이스 내에서 고유해야 합니다. 따라서 드라이버의 WMI 클래스 이름은 다른 드라이버에서 정의한 이름을 복제할 수 없습니다.

드라이버 작성기는 이름 충돌을 방지하기 위해 드라이버별 기본 클래스를 정의하고 해당 기본 클래스에서 드라이버의 모든 WMI 클래스를 파생시킬 수 있습니다. 클래스 이름과 기본 클래스 이름은 함께 고유한 이름을 생성할 가능성이 더 높습니다. 예를 들어 다음은 직렬 드라이버의 데이터 블록에 대한 추상 기본 클래스를 보여 줍니다.

// Serial driver's base class for data blocks
[abstract]
class MSSerial {
}
 
// Example class definition for a data block
[
    //Class qualifiers 
]
class MSSerial_StandardSerialInformation : MSSerial 
{
    //Data items
}

디바이스별 사용자 지정 데이터 블록에는 기본 클래스 이름에 드라이버 또는 디바이스의 제조업체, 모델 및 유형이 포함되어야 합니다. 예:

[abstract]
class Adaptec1542 {
}
 
class Adaptec1542_Bandwidth : Adaptec1542 {
    //Data items
}
 
class Adaptec1542_Speed : Adaptec1542 {
    //Data items
}

WMI는 지정된 클래스 계층 구조에서 하나의 추상 기본 클래스만 허용합니다. 이벤트 블록을 정의하는 클래스는 추상 기본 클래스인 WmiEvent에서 파생되어야 하므로 이벤트 블록에 대한 드라이버 정의 기본 클래스에서 추상 한정자를 사용할 수 없습니다. 대신 WmiEvent에서 nonabstract 기본 클래스를 파생한 다음, 해당 기본 클래스에서 개별 이벤트 클래스를 파생합니다. 예:

//Serial driver's base class for event blocks
class MSSerialEvent : WmiEvent 
{
}
 
//Example class definition for an event block
[
    //Class qualifiers 
]
class MSSerial_SendEvent : MSSerialEvent 
{
    //Data items
}

MOF 형식으로 기본 클래스를 정의하는 방법에 대한 자세한 내용은 Microsoft Windows SDK 참조하세요.