Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett dataobjekt i en klassdefinition av WMI-data eller händelseblock kan vara något av följande:
En grundläggande datatyp, till exempel en sträng eller ett osignerat heltal.
En inbäddad klass. En inbäddad klass används endast som ett dataobjekt i en annan klassdefinition och exponeras inte som ett datablock eller händelseblock.
En matris med fast längd eller variabel längd för en grundläggande datatyp eller inbäddad klass.
När du skickar ett datablock till WMI måste en drivrutin justera början av blocket på en 8-bytesgräns. Alla efterföljande dataobjekt i blocket måste justeras efter motsvarande justering för datatypen. En boolean eller uint8 bör justeras till en 1-bytegräns. Ett sint16-, uint16- eller strängobjekt bör justeras på en gräns på 2 byte och så vidare. Matriser bör justeras baserat på matrisens bastyp. En matris med byte ska justeras mot en bytegräns. En matris med uint64 bör justeras på en gräns på 8 byte och så vidare. En inbäddad klass bör justeras baserat på den naturliga justeringen av den inbäddade klassen som definieras som det största elementet i den inbäddade klassen. Om en inbäddad klass till exempel har en uint64 bör klassen justeras mot en gräns på 8 byte. Justering av WMI-dataobjekt följer samma konventioner som /Zp8-växeln på Microsoft C-kompilatorn.
En drivrutinsskrivare behöver inte nödvändigtvis definiera dataobjekt i ett annat block än de nödvändiga objekten InstanceName och Active. Ett tomt händelseblock kan till exempel fungera som ett meddelande om att en händelse har inträffat, utan ytterligare data. Eller så kan ett datablock helt enkelt räkna upp instansnamn som svar på en IRP_MN_QUERY_ALL_DATA begäran.
I följande tabell visas de MOF-datatyper som kan användas för att definiera objekt i ett WMI-data eller händelseblock. Mer information om MOF-datatyper finns i Microsoft Windows SDK.
| Datatyp | Dataformat | Justering (i bytes) |
|---|---|---|
sträng |
En USHORT som anger stränglängden i byte följt av Unicode-strängdata. Strängdata kan eventuellt innehålla en avslutande 0 följt av utfyllnad. I så fall måste stränglängden innehålla nollavslut och utfyllnad. Drivrutiner kan använda MaxLen-kvalificeraren för att ange maximal längd i tecken i strängen. Drivrutiner som anger en maximal stränglängd kan använda en buffert med fast storlek för att lagra strängen. Om strängen är strikt mindre än buffertens storlek kan drivrutinen fylla ut resten av strängen med nollor. |
2 |
boolean |
Ett värde med en byte där 0 är FALSE och alla värden som inte är noll är TRUE |
1 |
sint8 |
Signerat 8-bitars heltal |
1 |
uint8 |
Osignerat 8-bitars heltal |
1 |
sint16 |
Signerat 16-bitars heltal |
2 |
uint16 |
Osignerat 16-bitars heltal |
2 |
sint32 |
Signerat 32-bitars heltal |
4 |
uint32 |
Osignerat 32-bitars heltal |
4 |
sint64 |
Signerat 64-bitars heltal |
8 |
uint64 |
Osignerat heltal med 64 bitar |
8 |
datetime |
En Unicode-sträng med fast längd på 25 tecken som anger ett absolut datum- eller tidsintervall. Ett datetime-värde har följande format: yyyymmddhhmmss.mmmmmmsutc där: yyyyy är det 4-siffriga året mm är den 2-siffriga månaden dd är den 2-siffriga dagen i månaden hh är timmen enligt en 24-timmars klocka mm är minuten ss är sekunderna mmmmmm är antalet mikrosekunder s är ett plustecken (+) eller minustecken (-), som anger om utc är en positiv eller negativ förskjutning från universella tidskoordinater; eller ett kolon (:) som anger att datetime-värdet är ett intervall. utc är förskjutningen i minuter från universella tidskoordinater. Om utc är noll (000) är datetime-värdet ett intervall. Värdena måste vara noll-vadderade. Fält som inte är betydande kan fyllas med asterisker (*). |
2 |