WNODE_ALL_DATA struttura (wmistr.h)
La struttura WNODE_ALL_DATA contiene dati per tutte le istanze di un blocco di dati o di un blocco eventi.
Sintassi
typedef struct tagWNODE_ALL_DATA {
struct _WNODE_HEADER WnodeHeader;
ULONG DataBlockOffset;
ULONG InstanceCount;
ULONG OffsetInstanceNameOffsets;
union {
ULONG FixedInstanceSize;
OFFSETINSTANCEDATAANDLENGTH OffsetInstanceDataAndLength[];
} DUMMYUNIONNAME;
} WNODE_ALL_DATA, *PWNODE_ALL_DATA;
Members
WnodeHeader
Specifica una struttura WNODE_HEADER che contiene informazioni comuni a tutte le strutture WNODE_XXX, ad esempio le dimensioni del buffer, il GUID che rappresenta un blocco di dati associato a una richiesta e flag che forniscono informazioni sui dati WNODE_XXX passati o restituiti.
DataBlockOffset
Indica l'offset in byte dall'inizio della struttura WNODE_ALL_DATA all'inizio dei dati per la prima istanza.
InstanceCount
Indica il numero di istanze i cui dati seguono i membri fissi della WNODE_ALL_DATA nel buffer in IrpStack-Parameters.WMI.Buffer>.
OffsetInstanceNameOffsets
Indica l'offset in byte dall'inizio del WNODE_ALL_DATA a una matrice di offset ai nomi di istanza dinamici. Ogni nome dell'istanza deve essere allineato a un limite USHORT. Se tutte le istanze da restituire hanno nomi di istanza statici, WMI ignora OffsetInstanceNameOffsets.
DUMMYUNIONNAME
DUMMYUNIONNAME.FixedInstanceSize
Indica le dimensioni di ogni istanza da restituire se tutte queste istanze sono le stesse dimensioni. Questo membro è valido solo se il driver imposta WNODE_FLAG_FIXED_INSTANCE_SIZE in WnodeHeader.Flags.
DUMMYUNIONNAME.OffsetInstanceDataAndLength
Se le istanze da restituire variano in dimensioni, OffsetInstanceDataAndLength è una matrice di strutture InstanceCount OFFSETINSTANCEDATAANDLENGTH che specificano l'offset in byte dall'inizio del WNODE_ALL_DATA all'inizio di ogni istanza e la relativa lunghezza. OFFSETINSTANCEDATAANDLENGTH è definito come segue:
typedef struct {
ULONG OffsetInstanceData;
ULONG LengthInstanceData;
} OFFSETINSTANCEDATAANDLENGTH, *POFFSETINSTANCEDATAANDLENGTH;
Ogni istanza deve essere allineata a un limite USHORT. Il membro OffsetInstanceDataAndLength è valido solo se il driver cancella WNODE_FLAG_FIXED_INSTANCE_SIZE in WnodeHeader.Flags.
Commenti
Un driver compila una struttura WNODE_ALL_DATA in risposta a una richiesta di IRP_MN_QUERY_ALL_DATA. Un driver può anche generare un WNODE_ALL_DATA come evento.
Dopo aver compilato i membri fissi della struttura, un driver scrive i dati dell'istanza e i nomi di istanza dinamici (se presenti) in DataBlockOffset e OffsetInstanceNameOffsets rispettivamente nel buffer in IrpStack-Parameters.WMI.Buffer>. Se WNODE_FLAG_FIXED_INSTANCE_SIZE è chiaro, il primo offset segue l'ultimo elemento della matrice OffsetInstanceDataAndLength , oltre alla spaziatura interna in modo che i dati inizino su un limite a 8 byte.
I nomi di istanza devono essere allineati a USHORT. I dati dell'istanza devono essere allineati a QUADWORD.
Requisiti
Requisito | Valore |
---|---|
Intestazione | wmistr.h (include Wmistr.h) |