WMIREGINFOW 구조체(wmistr.h)
WMIREGINFO 구조에는 드라이버가 데이터 블록 및 이벤트 블록을 등록하거나 업데이트하기 위해 제공하는 정보가 포함되어 있습니다.
구문
typedef struct {
ULONG BufferSize;
ULONG NextWmiRegInfo;
ULONG RegistryPath;
ULONG MofResourceName;
ULONG GuidCount;
WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;
멤버
BufferSize
(sizeof(WMIREGINFO) + (GuidCountsizeof(WMIREGGUID) + additionaldata)로 계산된 이 WMIREGINFO 구조와 연결된 WMI * 등록 데이터의 총 크기를 나타냅니다. 추가 데이터에는 MOF 리소스 이름, 레지스트리 경로 및 블록에 대한 정적 instance 이름과 같은 항목이 포함될 수 있습니다.
NextWmiRegInfo
드라이버가 다른 드라이버를 대신하여 WMI 요청을 처리하는 경우 클래스 드라이버가 미니클래스 드라이버를 대신할 수 있으므로 NextWmiRegInfo 는 이 WMIREGINFO 의 시작부터 다른 드라이버에 대한 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를 빌드하고, 첫 번째 WMIREGINFO의 NextWmiRegInfo 멤버를 첫 번째 WMIREGINFO의 시작부터 버퍼의 다음 WMIREGINFO 시작까지 오프셋(바이트)으로 설정합니다. 및 는 두 구조를 모두 버퍼에 씁니다. 드라이버는 IoCompleteRequest를 호출하여 IRP를 완료할 때 WMIREGINFO 구조와 관련 데이터의 총 크기를 나타냅니다.
드라이버는 동일한 WMIREGINFO 구조를 사용하여 업데이트 요청에 대한 응답으로 블록을 제거하거나 업데이트할 수 있습니다(IRP_MN_REGINFO 또는 Parameters.WMI.DataPath가 WMIUPDATE로 설정된 IRP_MN_REGINFO_EX). WMIREG_FLAG_REMOVE_GUID WMIREGGUID의 Flags 멤버에 설정된 경우 WMI는 드라이버에서 이전에 등록된 블록 목록에서 해당 블록을 제거합니다. WMIREG_FLAG_REMOVE_GUID 명확한 경우 WMI는 다른 WMIREGGUID 멤버가 변경된 경우에만 해당 블록에 대한 등록 정보를 업데이트합니다. 그렇지 않으면 WMI는 해당 블록에 대한 등록 정보로 변경되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | wmistr.h(Wmistr.h 포함) |