다음을 통해 공유


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 구조체의 시작부터 첫 번째 instance 대한 데이터 시작 부분까지의 오프셋(바이트)을 나타냅니다.

InstanceCount

데이터가 IrpStack-Parameters.WMI.Buffer>의 버퍼에 있는 WNODE_ALL_DATA 고정 멤버를 따르는 인스턴스 수를 나타냅니다.

OffsetInstanceNameOffsets

WNODE_ALL_DATA 시작부터 동적 instance 이름에 대한 오프셋 배열까지의 오프셋(바이트)을 나타냅니다. 각 instance 이름은 USHORT 경계에 맞춰야 합니다. 반환할 모든 인스턴스에 정적 instance 이름이 있는 경우 WMI는 OffsetInstanceNameOffsets를 무시합니다.

DUMMYUNIONNAME

DUMMYUNIONNAME.FixedInstanceSize

이러한 모든 인스턴스의 크기가 동일한 경우 반환할 각 instance 크기를 나타냅니다. 이 멤버는 드라이버가 WnodeHeader.Flags에서 WNODE_FLAG_FIXED_INSTANCE_SIZE 설정하는 경우에만 유효합니다.

DUMMYUNIONNAME.OffsetInstanceDataAndLength

반환할 인스턴스의 크기가 다양하면 OffsetInstanceDataAndLength는 WNODE_ALL_DATA 시작부터 각 instance 시작 부분까지의 오프셋(바이트)을 지정하는 InstanceCount OFFSETINSTANCEDATAANDLENGTH 구조체의 배열입니다. OFFSETINSTANCEDATAANDLENGTH 는 다음과 같이 정의됩니다.

typedef struct {
  ULONG  OffsetInstanceData;
  ULONG  LengthInstanceData;
} OFFSETINSTANCEDATAANDLENGTH, *POFFSETINSTANCEDATAANDLENGTH;

각 instance USHORT 경계에 맞춰야 합니다. OffsetInstanceDataAndLength 멤버는 드라이버가 WnodeHeader.Flags에서 WNODE_FLAG_FIXED_INSTANCE_SIZE 지우는 경우에만 유효합니다.

설명

드라이버는 IRP_MN_QUERY_ALL_DATA 요청에 대한 응답으로 WNODE_ALL_DATA 구조를 채웁니다. 드라이버는 이벤트로 WNODE_ALL_DATA 생성할 수도 있습니다.

구조체의 고정 멤버를 채운 후 드라이버는 각각 IrpStack-Parameters.WMI.Buffer>의 버퍼에 DataBlockOffsetOffsetInstanceNameOffsets에 instance 데이터 및 동적 instance 이름(있는 경우)을 씁니다. WNODE_FLAG_FIXED_INSTANCE_SIZE 명확하면 첫 번째 오프셋은 OffsetInstanceDataAndLength 배열의 마지막 요소와 패딩을 따라 데이터가 8바이트 경계에서 시작되도록 합니다.

인스턴스 이름은 USHORT에 맞춰야 합니다. 인스턴스 데이터는 QUADWORD 정렬되어야 합니다.

요구 사항

요구 사항
헤더 wmistr.h(Wmistr.h 포함)

추가 정보

IRP_MN_QUERY_ALL_DATA

WNODE_EVENT_ITEM

WNODE_HEADER