Sdílet prostřednictvím


Čísla (WMI)

V MOF jsou čísla číslic, které popisují číselné hodnoty. MOF poskytuje celou řadu datových typů, které se překládají do služby Automation, a také umožňuje, aby tato čísla byla v různých formátech. Následující tabulka uvádí číselné hodnoty, které MOF podporuje.

Datový typ Typ automatizace Popis
sint8 VT_I2 Podepsané 8bitové celé číslo.
sint16 VT_I2 Podepsané 16bitové celé číslo.
sint32 VT_I4 Podepsané 32bitové celé číslo.
int64 VT_BSTR Podepsané 64bitové celé číslo ve formuláři řetězce. Tento typ se řídí šestnáctkovým nebo desetinným formátem podle pravidel C (American National Standards Institute).
real32 VT_R4 Hodnota 4 bajtů s plovoucí desetinou čárkou, která se řídí standardem IEEE (Institute of Electrical and Electronics Engineers, Inc.
real64 VT_R8 Hodnota 8 bajtů s plovoucí desetinou čárkou, která se řídí standardem IEEE.
uint8 VT_UI1 Celé číslo bez znaménka
uint16 VT_I4 Celé číslo bez znaménka.
uint32 VT_I4 Celé číslo bez znaménka.
uint64 VT_BSTR 64bitové celé číslo bez znaménka ve formuláři řetězce Tento typ se řídí šestnáctkovým nebo desítkovým formátem podle pravidel ANSI C.

I když je kód MOF flexibilní, při práci se službou Automation dochází k nějakým změnám:

  • 64bitové celá čísla musíte kódovat jako řetězce.

    Automatizace nepodporuje 64bitový celočíselný typ.

  • Typy automatizace vždy neodpovídají datovým typům MOF v bitové velikosti.

    Automation například používá VT_I4 k vrácení 16bitové hodnoty bez znaménka. Tato nesrovnalost existuje kvůli problémům s rozšířením přihlašování. Pokud služba Automation místo VT_I4 použila VT_I2, zdá se, že hodnota 65 536 je hodnota 1, což způsobuje problémy s typem a rozsahem. Podobně Automation představuje typ uint32 jako VT_I4, protože neexistuje žádný větší celočíselnou typ, který by měl obsahovat uint32.

  • U 8bitových typů číslic nemusíte měnit žádné reprezentace.

    Automatizace podporuje VT_UI1, nepodepsaný 8bitový typ.

MOF podporuje dlouhé konstanty. Deklarujete dlouhou konstantu pomocí jednoduché řady číslic s volitelným záporným znaménkem. Dlouhá konstanta nesmí překročit velikost proměnné, která je deklarována tak, aby ji držela. Některé příklady dlouhých konstant jsou 1000 a 12310.

MOF také podporuje alternativní číselné formáty. Následující tabulka uvádí speciální znaky, které musíte použít k popisu šestnáctkových, binárních a osmičkových konstant.

Konstanta Speciální znak Příklad
Desetinný
Žádný
val = 65
Šestnáctkový
Předpona 0x
val = 0x41
Osmičkový
Úvodní 0
val = 0101
Binární
Koncová B
val = 10000001B

Konstantu s plovoucí desetinnou čárkou můžete použít k reprezentaci vědeckého zápisu i zlomků, jak je znázorněno níže:

3.14
-3.14
-1.2778E+02

Rozhraní WMI považuje konstanty s plovoucí desetinou čárkou za typy VT_R8 pro automatizaci.

Následující příklad popisuje deklarace třídy a instance, které ilustrují použití jednotlivých číselných datových typů k nastavení vlastností:

Class NumericDataClass
 {
   [key] uint8 Duint8;
   SInt8       Dchar;
   UInt16      Dtword;
   Sint16      Dinst16;
   UInt32      Ddword;
   Sint32      Dinst1;
   Sint32      Dinst2;
   Sint32      Dinst3;
   Sint32      Dinst4;
   Sint32      Dinst5;
   Real32      Dfloat;
   Real64      Ddouble1;
   Real64      Ddouble2;
 };

instance of NumericDataClass
 {
   Duint8   =  122;
   Dchar    = -128;
   Dtword   =  30;
   Dinst16  = -1445;
   Ddword   =  6987777;
   Dinst1   = -455589;
   Dinst2   =  23;
   Dinst3   =  03;         // Base 8
   Dinst4   =  0xFe;       // Base 16
   Dinst5   =  11b;        // Base 2
   Dfloat   =  3.1478;
   Ddouble1 =  99987.3654;
   Ddouble2 =  2.3e-2;
 };