다음을 통해 공유


WMI 데이터 항목 Driver-Defined

WMI 데이터 또는 이벤트 블록의 클래스 정의에 있는 데이터 항목은 다음 중 하나일 수 있습니다.

  • 문자열 또는 부호 없는 정수와 같은 기본 데이터 형식입니다.

  • 포함된 클래스입니다. 포함된 클래스는 다른 클래스 정의의 데이터 항목으로만 사용되며 데이터 블록 또는 이벤트 블록으로 노출되지 않습니다.

  • 기본 데이터 형식 또는 포함된 클래스의 고정 길이 또는 가변 길이 배열입니다.

WMI에 데이터 블록을 보낼 때 드라이버는 8 바이트 경계에서 블록의 시작을 정렬해야 합니다. 블록의 모든 후속 데이터 항목은 데이터 형식에 대한 해당 맞춤에 맞춰야 합니다. 부울 또는 uint8은 1 바이트 경계에 맞춰야 합니다. sint16, uint16 또는 문자열 항목은 2 바이트 경계 등에 맞춰야 합니다. 배열은 배열의 기본 형식에 따라 정렬되어야 합니다. 바이트 배열은 바이트 경계에 맞춰야 하며 uint64 배열은 8바이트 경계에 맞춰야 합니다. 포함된 클래스는 포함된 클래스 내에서 가장 큰 요소로 정의된 포함된 클래스의 자연 맞춤에 따라 정렬되어야 합니다. 예를 들어 포함된 클래스에 uint64가 있는 경우 클래스는 8 바이트 경계에 맞춰야 합니다. WMI 데이터 항목 맞춤은 Microsoft C 컴파일러의 /Zp8 스위치와 동일한 규칙을 따릅니다.

드라이버 작성기가 필요한 항목 InstanceNameActive 이외의 블록에서 데이터 항목을 정의할 필요는 없습니다. 예를 들어 빈 이벤트 블록은 추가 데이터 없이 이벤트가 발생했음을 알리는 역할을 할 수 있습니다. 또는 데이터 블록은 IRP_MN_QUERY_ALL_DATA 요청에 대한 응답으로 instance 이름을 열거할 수 있습니다.

다음 표에서는 WMI 데이터 또는 이벤트 블록에서 항목을 정의하는 데 사용할 수 있는 MOF 데이터 형식을 나열합니다. MOF 데이터 형식에 대한 자세한 내용은 Microsoft Windows SDK 참조하세요.

데이터 형식 데이터 형식 맞춤(바이트)

string

문자열 길이를 바이트 단위로 지정한 다음 유니코드 문자열 데이터를 지정하는 USHORT입니다. 문자열 데이터에는 선택적으로 종료 0과 패딩이 포함될 수 있습니다. 이 경우 문자열 길이에는 종료 0과 패딩이 포함되어야 합니다. 드라이버는 MaxLen 한정자를 사용하여 문자열의 최대 길이를 지정할 수 있습니다. 최대 문자열 길이를 지정하는 드라이버는 고정 크기 버퍼를 사용하여 문자열을 저장할 수 있습니다. 문자열이 버퍼 크기보다 엄격하게 작은 경우 드라이버는 나머지 문자열을 0으로 패딩할 수 있습니다.

2

boolean

0이 FALSE이고 0이 아닌 값이 TRUE인 1바이트 값

1

sint8

부호 있는 8비트 정수

1

uint8

부호 없는 8비트 정수

1

sint16

부호 있는 16비트 정수

2

uint16

부호 없는 16비트 정수

2

sint32

부호 있는 32비트 정수

4

uint32

부호 없는 32비트 정수

4

sint64

부호 있는 64비트 정수

8

uint64

부호 없는 64비트 정수

8

datetime

절대 날짜 또는 시간 간격을 지정하는 고정 길이 25자 유니코드 문자열입니다. datetime 값의 형식은 다음과 같습니다.

yyyymmddhhmmss.mmmmmmsutc

여기서

yyyy 는 4자리 연도입니다.

mm 은 2자리 월입니다.

dd 는 월의 2자리 일입니다.

hh 는 24시간 시계에 따른 시간입니다.

mm 은 분입니다.

ss는 초입니다.

mmmmmm 은 마이크로초 수입니다.

sutc 가 유니버설 시간 좌표의 양수 또는 음수 오프셋인지 여부를 나타내는 더하기 기호(+) 또는 빼기 기호(-)입니다. 또는 datetime 값이 간격임을 나타내는 콜론(:).

utc 는 유니버설 시간 좌표의 오프셋(분)입니다. utc가 0(000)이면 datetime 값은 간격입니다.

값은 0 패딩이어야 합니다. 중요하지 않은 필드는 별표(*)로 채울 수 있습니다.

2