WMIGUIDREGINFO 구조체(wmilib.h)

WMIGUIDREGINFO 구조에는 WMI 라이브러리 지원 루틴을 사용하는 드라이버가 노출하는 지정된 데이터 블록 또는 이벤트 블록에 대한 등록 정보가 포함됩니다.

구문

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

멤버

Guid

블록을 식별하는 GUID에 대한 포인터입니다. GUID를 포함하는 메모리는 WmiFireEvent를 호출하는 데도 사용되지 않는 한 페이징할 수 있습니다.

InstanceCount

블록에 대해 정의된 인스턴스 수를 지정합니다.

Flags

블록의 특성을 나타내는 플래그 비트입니다. 이러한 플래그 비트는 Wmistr.h 헤더 파일에 정의됩니다. 드라이버가 등록한 모든 데이터 블록 및 이벤트 블록에 적용되는 DpWmiQueryReginfo 루틴의 RegFlags 매개 변수에서 드라이버가 설정한 플래그 비트가 있는 Flags 매개 변수 값 WMI RS입니다. 따라서 플래그는 지정된 블록에 대한 드라이버의 기본 설정을 보완합니다.

드라이버는 Flags에서 다음 플래그 비트를 설정할 수 있습니다.

WMIREG_FLAG_INSTANCE_PDO

PDO에 대한 디바이스 instance ID에서 정적 instance 이름을 생성하도록 WMI에 요청합니다. 이 플래그를 설정하면 드라이버의 DpWmiQueryReginfo 루틴의 Pdo 매개 변수가 드라이버의 AddDevice 루틴에 전달된 PDO를 가리킵니다. WMI는 PDO의 디바이스 instance 경로에서 instance 이름을 생성합니다. 이러한 이름은 고유하게 보장되므로 디바이스 instance 경로를 정적 instance 이름의 기반으로 사용하는 것이 효율적입니다. WMI는 데이터 소비자가 쿼리할 수 있는 데이터 블록의 항목으로 instance "친숙한" 이름을 자동으로 제공합니다.

드라이버는 다음 플래그 비트 중 하나 이상을 설정할 수도 있습니다.

WMIREG_FLAG_EVENT_ONLY_GUID

블록은 이벤트로만 사용하거나 사용하지 않도록 설정할 수 있으며 쿼리하거나 설정할 수 없습니다. 이 플래그가 명확하면 블록을 쿼리하거나 설정할 수도 있습니다.

WMIREG_FLAG_EXPENSIVE

데이터 소비자가 데이터 블록을 처음 열 때 WMI에 IRP_MN_ENABLE_COLLECTION 요청을 보내고 마지막 데이터 소비자가 데이터 블록을 닫을 때 IRP_MN_DISABLE_COLLECTION 요청을 요청합니다. 이러한 데이터를 수집하는 것이 성능에 영향을 주는 경우 드라이버가 데이터 소비자가 블록을 열어 명시적으로 요청할 때까지 데이터를 수집할 필요가 없기 때문에 권장됩니다.

WMIREG_FLAG_REMOVE_GUID

이 블록에 대한 지원을 제거하도록 WMI에 요청합니다. 이 플래그는 등록 정보 업데이트 요청에 대한 응답으로만 유효합니다(IRP_MN_REGINFO 또는 Parameters.WMI.DataPath가 WMIUPDATE로 설정된 IRP_MN_REGINFO_EX).

설명

WMI 라이브러리 지원 루틴을 호출하여 WMI IRP를 처리하는 드라이버는 등록할 각 데이터 블록 및 이벤트 블록에 대해 하나씩 WMIGUIDREGINFO 구조체의 배열을 빌드합니다. 드라이버는 WMILIB_CONTEXT 구조체의 GuidList 멤버를 계열의 첫 번째 WMIGUIDREGINFO를 가리키도록 설정합니다.

이 구조체의 메모리는 페이징 풀에서 할당할 수 있습니다.

요구 사항

요구 사항
헤더 wmilib.h(Wmilib.h 포함)

추가 정보

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent