다음을 통해 공유


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 생성할 수도 있습니다.

구조체의 고정 멤버를 입력한 후 드라이버는 DataBlockOffsetOffsetInstanceNameOffsets인스턴스 데이터 및 동적 인스턴스 이름(있는 경우)을 IrpStack->Parameters.WMI.Buffer버퍼에 각각 씁니다. WNODE_FLAG_FIXED_INSTANCE_SIZE 명확한 경우 첫 번째 오프셋은 OffsetInstanceDataAndLength 배열의 마지막 요소와 8바이트 경계에서 데이터가 시작되도록 안쪽 여백을 따릅니다.

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

요구 사항

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

참고 항목

IRP_MN_QUERY_ALL_DATA

WNODE_EVENT_ITEM

WNODE_HEADER