WNODE_ALL_DATA 구조체(wmistr.h)
WNODE_ALL_DATA 구조에는 데이터 블록 또는 이벤트 블록의 모든 인스턴스에 대한 데이터가 포함됩니다.
통사론
typedef struct tagWNODE_ALL_DATA {
struct _WNODE_HEADER WnodeHeader;
ULONG DataBlockOffset;
ULONG InstanceCount;
ULONG OffsetInstanceNameOffsets;
union {
ULONG FixedInstanceSize;
OFFSETINSTANCEDATAANDLENGTH OffsetInstanceDataAndLength[];
} DUMMYUNIONNAME;
} WNODE_ALL_DATA, *PWNODE_ALL_DATA;
회원
WnodeHeader
버퍼 크기, 요청과 연결된 데이터 블록을 나타내는 GUID 및 전달되거나 반환되는 WNODE_XXX 데이터에 대한 정보를 제공하는 플래그와 같은 모든 WNODE_XXX 구조체에 공통적인 정보를 포함하는 WNODE_HEADER 구조를 지정합니다.
DataBlockOffset
WNODE_ALL_DATA 구조체의 시작부터 첫 번째 인스턴스의 데이터 시작 부분까지의 오프셋(바이트)을 나타냅니다.
InstanceCount
데이터가 IrpStack->Parameters.WMI.Buffer버퍼에 있는 WNODE_ALL_DATA 고정 멤버를 따르는 인스턴스 수를 나타냅니다.
OffsetInstanceNameOffsets
WNODE_ALL_DATA 시작부터 동적 인스턴스 이름에 대한 오프셋 배열까지의 오프셋(바이트)을 나타냅니다. 각 인스턴스 이름은 USHORT 경계에 맞춰야 합니다. 반환할 모든 인스턴스에 정적 인스턴스 이름이 있는 경우 WMI는 OffsetInstanceNameOffsets무시합니다.
DUMMYUNIONNAME
DUMMYUNIONNAME.FixedInstanceSize
이러한 모든 인스턴스의 크기가 동일한 경우 반환할 각 인스턴스의 크기를 나타냅니다. 이 멤버는 드라이버가 WnodeHeader.FlagsWNODE_FLAG_FIXED_INSTANCE_SIZE 설정하는 경우에만 유효합니다.
DUMMYUNIONNAME.OffsetInstanceDataAndLength
반환할 인스턴스의 크기가 달라지면 OffsetInstanceDataAndLengthInstanceCount OFFSETINSTANCEDATAANDLENGTH 구조체의 배열로, WNODE_ALL_DATA 시작부터 각 인스턴스의 시작 부분까지의 오프셋을 바이트 단위로 지정합니다. OFFSETINSTANCEDATAANDLENGTH 다음과 같이 정의됩니다.
typedef struct {
ULONG OffsetInstanceData;
ULONG LengthInstanceData;
} OFFSETINSTANCEDATAANDLENGTH, *POFFSETINSTANCEDATAANDLENGTH;
각 인스턴스는 USHORT 경계에 맞춰야 합니다. OffsetInstanceDataAndLength 멤버는 드라이버가 WnodeHeader.FlagsWNODE_FLAG_FIXED_INSTANCE_SIZE 지우는 경우에만 유효합니다.
발언
드라이버는 IRP_MN_QUERY_ALL_DATA 요청에 대한 응답으로 WNODE_ALL_DATA 구조를 채웁니다. 드라이버는 이벤트로 WNODE_ALL_DATA 생성할 수도 있습니다.
구조체의 고정 멤버를 입력한 후 드라이버는 DataBlockOffset 및 OffsetInstanceNameOffsets인스턴스 데이터 및 동적 인스턴스 이름(있는 경우)을 IrpStack->Parameters.WMI.Buffer버퍼에 각각 씁니다. WNODE_FLAG_FIXED_INSTANCE_SIZE 명확한 경우 첫 번째 오프셋은 OffsetInstanceDataAndLength 배열의 마지막 요소와 8바이트 경계에서 데이터가 시작되도록 안쪽 여백을 따릅니다.
인스턴스 이름은 USHORT에 맞춰야 합니다. 인스턴스 데이터는 QUADWORD에 맞춰야 합니다.
요구 사항
요구 | 값 |
---|---|
헤더 | wmistr.h(Wmistr.h 포함) |