Condividi tramite


Struttura WMIREGGUIDW (wmistr.h)

La struttura WMIREGGUID contiene informazioni di registrazione nuove o aggiornate per un blocco di dati o un blocco eventi.

Sintassi

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

Membri

Guid

Specifica il GUID che rappresenta il blocco da registrare o aggiornare.

Flags

Indica le caratteristiche del blocco da registrare o aggiornare.

Se un blocco viene registrato con nomi di istanza statici, un driver imposta uno dei flag seguenti:

WMIREG_FLAG_INSTANCE_LIST

Indica che il driver fornisce nomi di istanza statici per questo blocco in un elenco statico che segue la struttura WMIREGINFO nel buffer in IrpStack->Parameters.WMI.Buffer. Se questo flag è impostato, InstanceNameList è l'offset in byte dall'inizio della struttura WMIREGINFO che contiene questo WMIREGGUID a una serie contigua di stringhe Unicode InstanceCount conteggiate.

WMIREG_FLAG_INSTANCE_BASENAME

Richiede a WMI di generare nomi di istanza statici da un nome di base fornito dal driver seguendo la struttura WMIREGINFO WMIREGINFO nel buffer in IrpStack->Parameters.WMI.Buffer. WMI genera nomi di istanza aggiungendo un contatore al nome di base. Se questo flag è impostato, BaseNameOffset è l'offset in byte dall'inizio della struttura WMIREGINFO che contiene questo WMIREGGUID a una singola stringa Unicode con conteggiata che funge da nome di base.

WMIREG_FLAG_INSTANCE_PDO

Richiede a WMI di generare nomi di istanza statici dall'ID istanza del dispositivo per il PDO. Se questo flag è impostato, InstanceInfo punta alla routine PDO passata alla routine addDevice del driver. WMI genera nomi di istanza dal percorso dell'istanza del dispositivo del PDO. L'uso del percorso dell'istanza del dispositivo come base per i nomi di istanza statici è efficiente perché tali nomi sono sicuramente univoci. WMI fornisce automaticamente un nome "descrittivo" per l'istanza come elemento in un blocco di dati su cui è possibile eseguire query da parte dei consumer di dati.

Se un blocco viene registrato con nomi di istanza dinamici, WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME e WMIREG_FLAG_INSTANCE_PDO devono essere chiari.

Un driver può anche impostare uno o più dei flag seguenti:

WMIREG_FLAG_EVENT_ONLY_GUID

Il blocco può essere abilitato o disabilitato solo come evento e non può essere sottoposto a query o set. Se questo flag è deselezionato, è anche possibile eseguire query o impostare il blocco.

WMIREG_FLAG_EXPENSIVE

Richiede a WMI di inviare una richiesta di IRP_MN_ENABLE_COLLECTION la prima volta che un consumer di dati apre il blocco di dati e una richiesta di IRP_MN_DISABLE_COLLECTION quando l'ultimo consumer di dati chiude il blocco di dati. Questa operazione è consigliata se la raccolta di tali dati influisce sulle prestazioni, perché un driver non deve raccogliere i dati fino a quando un consumer di dati non lo richiede esplicitamente aprendo il blocco.

WMIREG_FLAG_REMOVE_GUID

Richiede a WMI di rimuovere il supporto per questo blocco. Questo flag è valido solo in risposta a una richiesta di aggiornamento delle informazioni di registrazione (IRP_MN_REGINFO o IRP_MN_REGINFO_EX con Parameters.WMI.DataPath impostato su WMIUPDATE).

WMIREG_FLAG_TRACED_GUID

Il blocco può essere scritto solo in un file di log ed è accessibile solo tramite routine in modalità utente dichiarate in evntrace.h. Solo i provider di dati in modalità kernel NT impostano questo flag.

WMIREG_FLAG_TRACE_CONTROL_GUID

Il GUID funge da GUID del controllo per abilitare o disabilitare i GUID di traccia associati nel file MOF. Questo flag è valido solo se è impostato WMIREG_FLAG_TRACED_GUID. Solo i provider di dati in modalità kernel NT impostano questo flag.

InstanceCount

Specifica il numero di nomi di istanza statici da definire per questo blocco. Se il blocco viene registrato con nomi di istanza dinamici, WMI ignora InstanceCount.

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

Indica l'offset in byte dall'inizio della struttura WMIREGINFO che contiene questo WMIREGGUID a una serie contigua di stringhe Unicode InstanceCount conteggiate. Questo membro è valido solo se WMIREG_FLAG_INSTANCE_LIST è impostato in Flag. Se il blocco viene registrato con nomi di istanza dinamici, WMI ignora InstanceNameList.

DUMMYUNIONNAME.BaseNameOffset

Indica l'offset in byte dall'inizio della struttura WMIREGINFO che contiene questo WMIREGGUID a una singola stringa Unicode con conteggiata che funge da base per WMI per generare nomi di istanza statici. Questo membro è valido solo se WMIREG_FLAG_INSTANCE_BASENAME è impostato in Flag. Se il blocco viene registrato con nomi di istanza dinamici, WMI ignora BaseNameOffset.

DUMMYUNIONNAME.Pdo

Puntatore all'oggetto dispositivo fisico (PDO) passato alla routine AddDevice del driver. WMI usa il percorso dell'istanza del dispositivo di questo PDO come base da cui generare nomi di istanza statici. Questo membro è valido solo se WMIREG_FLAG_INSTANCE_PDO è impostato in Flag. Se il blocco viene registrato con nomi di istanza dinamici, WMI ignora Pdo.

DUMMYUNIONNAME.InstanceInfo

Riservato per l'uso da parte di WMI.

Osservazioni

Un driver compila una o più strutture WMIREGGUID in risposta a una richiesta di IRP_MN_REGINFO o IRP_MN_REGINFO_EX di registrare o aggiornare i blocchi. Il driver passa una matrice di tali strutture nel membro wmiRegGuid di una struttura WMIREGINFO, che il driver scrive nel buffer in IrpStack->Parameters.WMI.Buffer.

Un driver può registrare o aggiornare un blocco con nomi di istanza statici o dinamici. I nomi di istanza statici offrono prestazioni ottimali; Tuttavia, i nomi delle istanze dinamiche sono preferiti per i blocchi di dati se il numero di istanze o i nomi delle istanze cambiano frequentemente. Per altre informazioni sui nomi delle istanze, vedere Definizione dei nomi di istanza WMI.

Fabbisogno

Requisito Valore
intestazione wmistr.h (include Wmistr.h)

Vedere anche

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO