Estructura WMIREGGUIDW (wmistr.h)

La estructura WMIREGGUID contiene información de registro nueva o actualizada para un bloque de datos o bloque de eventos.

Sintaxis

typedef struct {
  GUID  Guid;
  ULONG Flags;
  ULONG InstanceCount;
  union {
    ULONG     InstanceNameList;
    ULONG     BaseNameOffset;
    ULONG_PTR Pdo;
    ULONG_PTR InstanceInfo;
  } DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;

Miembros

Guid

Especifica el GUID que representa el bloque que se va a registrar o actualizar.

Flags

Indica las características del bloque que se van a registrar o actualizar.

Si un bloque se está registrando con nombres de instancia estáticos, un controlador establece una de las marcas siguientes:

WMIREG_FLAG_INSTANCE_LIST

Indica que el controlador proporciona nombres de instancia estáticos para este bloque en una lista estática después de la estructura WMIREGINFO del búfer en IrpStack-Parameters.WMI.Buffer>. Si se establece esta marca, InstanceNameList es el desplazamiento en bytes desde el principio de la estructura WMIREGINFO que contiene este WMIREGGUID a una serie contigua de cadenas Unicode contadas por InstanceCount.

WMIREG_FLAG_INSTANCE_BASENAME

Solicita a WMI que genere nombres de instancia estáticos a partir de un nombre base proporcionado por el controlador después de la estructura WMIREGINFO del búfer en IrpStack-Parameters.WMI.Buffer>. WMI genera nombres de instancia anexando un contador al nombre base. Si se establece esta marca, BaseNameOffset es el desplazamiento en bytes desde el principio de la estructura WMIREGINFO que contiene este WMIREGGUID a una sola cadena Unicode con recuento que actúa como nombre base.

WMIREG_FLAG_INSTANCE_PDO

Solicita a WMI que genere nombres de instancia estáticos a partir del identificador de instancia de dispositivo para el PDO. Si se establece esta marca, InstanceInfo apunta al PDO pasado a la rutina AddDevice del controlador. WMI genera nombres de instancia a partir de la ruta de acceso de la instancia de dispositivo del PDO. El uso de la ruta de acceso de la instancia de dispositivo como base para nombres de instancia estáticos es eficaz porque se garantiza que estos nombres son únicos. WMI proporciona automáticamente un nombre "descriptivo" para la instancia como un elemento de un bloque de datos que los consumidores de datos pueden consultar.

Si un bloque se está registrando con nombres de instancia dinámicos, WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME y WMIREG_FLAG_INSTANCE_PDO deben estar claros.

Un controlador también puede establecer una o varias de las marcas siguientes:

WMIREG_FLAG_EVENT_ONLY_GUID

El bloque solo se puede habilitar o deshabilitar como un evento y no se puede consultar ni establecer. Si esta marca está clara, el bloque también se puede consultar o establecer.

WMIREG_FLAG_EXPENSIVE

Solicita a WMI que envíe una solicitud de IRP_MN_ENABLE_COLLECTION la primera vez que un consumidor de datos abra el bloque de datos y una solicitud de IRP_MN_DISABLE_COLLECTION cuando el último consumidor de datos cierre el bloque de datos. Esto se recomienda si la recopilación de estos datos afecta al rendimiento, ya que un controlador no necesita recopilar los datos hasta que un consumidor de datos lo solicite explícitamente abriendo el bloque .

WMIREG_FLAG_REMOVE_GUID

Solicita a WMI que quite la compatibilidad con este bloque. Esta marca solo es válida en respuesta a una solicitud para actualizar la información de registro (IRP_MN_REGINFO o IRP_MN_REGINFO_EX con Parameters.WMI.DataPath establecido en WMIUPDATE).

WMIREG_FLAG_TRACED_GUID

El bloque solo se puede escribir en un archivo de registro y solo se puede acceder a él a través de rutinas de modo de usuario declaradas en evntrace.h. Solo los proveedores de datos en modo kernel nt establecen esta marca.

WMIREG_FLAG_TRACE_CONTROL_GUID

El GUID actúa como GUID de control para habilitar o deshabilitar los GUID de seguimiento asociados a él en el archivo MOF. Esta marca solo es válida si también se establece WMIREG_FLAG_TRACED_GUID. Solo los proveedores de datos en modo kernel nt establecen esta marca.

InstanceCount

Especifica el número de nombres de instancia estáticos que se van a definir para este bloque. Si el bloque se está registrando con nombres de instancia dinámicos, WMI omite InstanceCount.

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

Indica el desplazamiento en bytes desde el principio de la estructura WMIREGINFO que contiene este WMIREGGUID a una serie contigua de cadenas Unicode contadas de InstanceCount . Este miembro solo es válido si WMIREG_FLAG_INSTANCE_LIST está establecido en Marcas. Si el bloque se está registrando con nombres de instancia dinámicos, WMI omite InstanceNameList.

DUMMYUNIONNAME.BaseNameOffset

Indica el desplazamiento en bytes desde el principio de la estructura WMIREGINFO que contiene este WMIREGGUID a una sola cadena Unicode con recuento que actúa como base para que WMI genere nombres de instancia estáticos. Este miembro solo es válido si WMIREG_FLAG_INSTANCE_BASENAME está establecido en Marcas. Si el bloque se está registrando con nombres de instancia dinámicos, WMI omite BaseNameOffset.

DUMMYUNIONNAME.Pdo

Puntero al objeto de dispositivo físico (PDO) pasado a la rutina AddDevice del controlador. WMI usa la ruta de acceso de la instancia de dispositivo de este PDO como base a partir de la cual se generan nombres de instancia estáticos. Este miembro solo es válido si WMIREG_FLAG_INSTANCE_PDO está establecido en Marcas. Si el bloque se está registrando con nombres de instancia dinámicos, WMI omite Pdo.

DUMMYUNIONNAME.InstanceInfo

Reservado para su uso por WMI.

Comentarios

Un controlador compila una o varias estructuras WMIREGGUID en respuesta a una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX para registrar o actualizar sus bloques. El controlador pasa una matriz de estas estructuras en el miembro WmiRegGuid de una estructura WMIREGINFO, que el controlador escribe en el búfer en IrpStack-Parameters.WMI.Buffer>.

Un controlador puede registrar o actualizar un bloque con nombres de instancia estáticos o dinámicos. Los nombres de instancia estáticos proporcionan un mejor rendimiento; sin embargo, se prefieren los nombres de instancia dinámicos para los bloques de datos si el número de instancias o nombres de instancia cambian con frecuencia. Para obtener más información sobre los nombres de instancia, vea Definición de nombres de instancia de WMI.

Requisitos

Requisito Valor
Header wmistr.h (incluye Wmistr.h)

Consulte también

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO