Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un elemento di dati in una definizione di classe di dati WMI o di un blocco di eventi può essere uno dei seguenti:
Tipo di dati di base, ad esempio una stringa o un intero senza segno.
Classe incorporata. Una classe incorporata viene usata solo come elemento di dati in un'altra definizione di classe e non viene esposta come blocco di dati o blocco eventi.
Matrice a lunghezza fissa o a lunghezza variabile di un tipo di dati di base o di una classe incorporata.
Quando si invia un blocco di dati a WMI, un driver deve allineare l'inizio del blocco su un limite di 8 byte. Tutti gli elementi di dati successivi nel blocco devono essere allineati sull'allineamento corrispondente per il tipo di dati. Un valore booleano o uint8 deve essere allineato su un limite di 1 byte. Un elemento sint16, uint16 o stringa deve essere allineato su un limite di 2 byte e così via. Le matrici devono essere allineate in base al tipo di base della matrice. Una matrice di byte deve essere allineata su un limite di byte, una matrice di uint64 deve essere allineata su un limite di 8 byte e così via. Una classe incorporata deve essere allineata in base all'allineamento naturale della classe incorporata, definita come elemento più grande all'interno della classe incorporata. Ad esempio, se una classe incorporata ha un uint64, la classe deve essere allineata su un limite di 8 byte. L'allineamento degli elementi di dati WMI segue le stesse convenzioni dell'opzione /Zp8 nel compilatore Microsoft C.
Un writer di driver non deve necessariamente definire elementi di dati in un blocco diverso dagli elementi necessari InstanceName e Active. Ad esempio, un blocco di eventi vuoto può fungere da notifica che si è verificato un evento, senza dati aggiuntivi. In alternativa, un blocco di dati potrebbe semplicemente enumerare i nomi di istanza in risposta a una richiesta di IRP_MN_QUERY_ALL_DATA .
Nella tabella seguente sono elencati i tipi di dati MOF che possono essere usati per definire elementi in un blocco di eventi o dati WMI. Per altre informazioni sui tipi di dati MOF, vedere Microsoft Windows SDK.
| Tipo di dati | Formato dei dati | Allineamento (in bytes) |
|---|---|---|
string |
Un USHORT che specifica la lunghezza della stringa in byte, seguito dai dati della stringa Unicode. I dati stringa possono facoltativamente includere un carattere di terminazione 0 seguito dalla spaziatura interna. In tal caso, la lunghezza della stringa deve includere la terminazione 0 e la spaziatura interna. I driver possono usare il qualificatore MaxLen per specificare la lunghezza massima in caratteri della stringa. I driver che specificano una lunghezza massima della stringa possono usare un buffer a dimensione fissa per contenere la stringa. Se la stringa è strettamente inferiore alla dimensione del buffer, il driver può riempire il resto della stringa con zeri. |
2 |
booleano |
Valore a un byte in cui 0 è FALSE e qualsiasi valore diverso da zero è TRUE |
1 |
sint8 |
Intero a 8 bit con segno |
1 |
uint8 |
Intero senza segno a 8 bit |
1 |
sint16 |
Numero intero con segno a 16 bit |
2 |
uint16 |
Intero senza segno a 16 bit |
2 |
sint32 |
Intero con segno a 32 bit |
4 |
uint32 |
Intero senza segno a 32 bit |
4 |
sint64 |
Intero con segno a 64 bit |
8 |
uint64 |
Intero senza segno a 64 bit |
8 |
datetime |
Stringa Unicode a lunghezza fissa di 25 caratteri che specifica un intervallo di data o ora assoluto. Un valore datetime ha il formato seguente: aaaammddhhmmss.mmmmmmsutc where: yyyy è l'anno a 4 cifre mm è il mese a 2 cifre dd è il giorno a 2 cifre del mese hh è l'ora in base a un orologio di 24 ore mm è il minuto ss sono i secondi mmmmmm è il numero di microsecondi s è un segno più (+) o segno meno (-), che indica se utc è un offset positivo o negativo dalle coordinate temporali universali; o due punti (:), che indicano che il valore datetime è un intervallo. utc è l'offset espresso in minuti dalle coordinate temporali universali. Se utc è zero (000), il valore datetime è un intervallo. I valori devono essere riempiti con zeri. I campi che non sono significativi possono essere riempiti con asterischi (*). |
2 |