다음을 통해 공유


WMIREGINFOW 구조체(wmistr.h)

WMIREGINFO 구조에는 드라이버가 데이터 블록 및 이벤트 블록을 등록하거나 업데이트하기 위해 제공한 정보가 포함되어 있습니다.

통사론

typedef struct {
  ULONG       BufferSize;
  ULONG       NextWmiRegInfo;
  ULONG       RegistryPath;
  ULONG       MofResourceName;
  ULONG       GuidCount;
  WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;

회원

BufferSize

WMIREGINFO 구조와 연결된 WMI 등록 데이터의 총 크기를 다음과 같이 계산합니다. (sizeof(WMIREGINFO) + (GuidCount * sizeof(WMIREGGUID) + 추가 데이터). 추가 데이터에는 블록에 대한 MOF 리소스 이름, 레지스트리 경로 및 정적 인스턴스 이름과 같은 항목이 포함될 수 있습니다.

NextWmiRegInfo

드라이버가 다른 드라이버를 대신하여 WMI 요청을 처리하는 경우 클래스 드라이버가 미니클래스 드라이버를 대신할 수 있으므로 NextWmiRegInfoWMIREGINFO 시작부터 다른 드라이버에 대한 WMI 등록 정보가 포함된 다음 WMIREGINFO 구조까지 오프셋을 바이트 단위로 나타냅니다. 그렇지 않으면 NextWmiRegInfo 0입니다.

RegistryPath

드라이버의 DriverEntry 루틴에 전달되는 레지스트리 경로를 지정하는 계산된 유니코드 문자열까지 이 구조의 시작 부분에서 바이트 단위로 오프셋을 나타냅니다. 문자열은 USHORT 경계에 맞춰야 합니다. 이 멤버는 WMI 등록 요청(IRP_MN_REGINFO 또는 Parameters.WMI.DataPath WMIREGISTER로 설정된 IRP_MN_REGINFO_EX)에 대한 응답으로만 설정해야 합니다.

MofResourceName

이 구조체의 시작 부분에서 드라이버 이미지 파일의 MOF 리소스 이름을 지정하는 계산된 유니코드 문자열까지의 오프셋을 바이트 단위로 나타냅니다. 문자열은 USHORT 경계에 맞춰야 합니다. 이 멤버는 WMI 등록 요청(IRP_MN_REGINFO 또는 Parameters.WMI.DataPath WMIREGISTER로 설정된 IRP_MN_REGINFO_EX)에 대한 응답으로만 설정해야 합니다.

GuidCount

WmiRegGuid배열의 WMIREGGUID 구조체 수를 나타냅니다.

WmiRegGuid

GuidCount WMIREGGUID 구조체의 배열입니다.

발언

Parameters.WMI.DataPath WMIREGISTER로 설정된 등록 요청(IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX)에 대한 응답으로 드라이버는 하나 이상의 WMIREGINFO 구조를 빌드하고 IrpStack->Parameters.WMI.Buffer버퍼에 WMIREGINFO 구조를 씁니다. WMIREGINFO 구조체에는 드라이버가 노출하는 각 데이터 블록 또는 이벤트 블록에 대해 하나씩 WMIREGGUID 구조의 배열이 포함되어 있습니다.

드라이버가 다른 드라이버를 대신하여 WMI 요청을 처리하는 경우 다른 드라이버가 노출하는 각 블록에 대한 WMIREGGUID 구조 배열을 포함하는 다른 WMIREGINFO 빌드합니다. 첫 번째 WMIREGINFONextWmiRegInfo 멤버를 첫 번째 WMIREGINFO 시작부터 버퍼의 다음 WMIREGINFO 시작 부분까지 오프셋(바이트)으로 설정합니다. 두 구조를 모두 버퍼에 씁니다. 드라이버는 IRP를 완료하기 위해 IoCompleteRequest 호출할 때 WMIREGINFO 구조 및 관련 데이터의 총 크기를 나타냅니다.

드라이버는 동일한 WMIREGINFO 구조를 사용하여 업데이트 요청(IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EXParameters.WMI.DataPath WMIUPDATE로 설정)에 대한 응답으로 블록을 제거하거나 업데이트할 수 있습니다. WMIREG_FLAG_REMOVE_GUID WMIREGGUIDFlags 멤버에 설정된 경우 WMI는 드라이버에서 이전에 등록한 블록 목록에서 해당 블록을 제거합니다. WMIREG_FLAG_REMOVE_GUID 명확한 경우 WMI는 다른 WMIREGGUID 멤버가 변경된 경우에만 해당 블록에 대한 등록 정보를 업데이트합니다. 그렇지 않으면 WMI는 해당 블록에 대한 등록 정보로 변경되지 않습니다.

요구 사항

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

참고 항목

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IoCompleteRequest

WMIREGGUID