Freigeben über


BitMap- und BitValue-Qualifizierer

Eine Bitmap ist eine ganze Zahl, die mit einer Eigenschaft verknüpft ist, mit der BitMap- und BitValue- Qualifizierern. Jedes Bit des Eigenschaftswerts fungiert als Index im Array der Werte in der liste BitValue. Da mehrere Bits im Eigenschaftswert gleichzeitig "ein" sein können, ist es möglich, einen einzelnen Eigenschaftswert zu verwenden, um mehrere gleichzeitige Werte anzugeben.

Im folgenden MOF-Codebeispiel wird beispielsweise die FileType-Eigenschaft so eingerichtet, dass die BitMap- und BitValues- Qualifizierer verwendet werden. Außerdem wird festgelegt, dass das Bit mit niedriger Reihenfolge (Bit 0) dem Wert "Schreibgeschützt" entspricht. Das nächste Bit (Bit 1) entspricht "Ausgeblendet" usw. (Nicht alle Bits müssen signifikant sein. In diesem Acht-Bit-System haben die beiden hochgeordneten Bits 6 und 7 keine Bedeutung.)

[BitMap("0","1","2","3","4","5"),
 BitValues("Read Only",
           "Hidden",
           "System",
           "Volume Label",
           "Subdirectory",
           "Archive")]
byte FileType;

Wenn die FileType-Eigenschaft den Wert 7 (Bits 0000 0111) meldet, lautet die Datei "Schreibgeschützt", "System" und "Ausgeblendet". Wenn die FileType-Eigenschaft den Wert 18 (0x12, Bits 0001 0010) meldet, handelt es sich um ein ausgeblendetes Unterverzeichnis.

Es gibt zwei verschiedene Arten von Bitmaps mit MOF-Code:

  • Aufeinanderfolgende signifikante Bits beginnend mit dem Bit mit niedriger Reihenfolge (Bit 0)

    Sie können ein Array von Bitwerten definieren, ohne explizit die signifikanten Bits anzugeben, wenn die signifikanten Bits mit dem Bit mit niedriger Reihenfolge (Bit 0) beginnen und ohne Unterbrechung durch alle Elemente im BitValue Array nach oben wechseln. Im folgenden MOF-Codebeispiel wird dieselbe Funktion wie im vorherigen Beispiel ausgeführt.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Signifikantes Bit vor einem nicht signifikanten Bit

    Wenn das Bit mit niedriger Reihenfolge unbedeutend ist oder die Abfolge signifikanter Bits nicht fortlaufend ist, müssen Sie sowohl die BitMap- als auch BitValues- Qualifizierer angeben. Das folgende MOF-Codebeispiel zeigt eine Situation, in der das Bit mit niedriger Reihenfolge nicht signifikant ist und es eine Lücke in der Sequenz signifikanter Bits gibt.

    [BitMap("1","4","5"),
     BitValues("Follow-up","Delivery receipt","Read receipt")]
    sint32 MailOptions;
    

    In diesem Fall hat das Festlegen des Bits mit niedriger Reihenfolge (Bit 0) keine Bedeutung und wird ignoriert. Das Festlegen von Bit 1 (0x2) weist jedoch darauf hin, dass diese E-Mail-Nachricht zur Nachverfolgung gekennzeichnet ist. Das Einrichten von Bit 4 (0x8) gibt an, dass eine Übermittlungsbestätigung an den Absender gesendet werden soll, wenn die E-Mail-Nachricht am Postfach des Empfängers angekommen ist, und durch Festlegen von Bit 5 (0x10) wird angegeben, dass eine Lesebestätigung an den Absender gesendet werden soll, wenn die E-Mail-Nachricht vom Empfänger geöffnet wird. Durch Festlegen aller drei signifikanten Bits (0x1A) werden alle drei Bedingungen für die E-Mail-Nachricht angegeben.

Bemerkungen

Bei der Entscheidung, ob die BitMap-/BitValues- oder ValueMap-/Werte Qualifizierern verwendet werden soll, bestimmen Sie, ob alle angegebenen Werte gleichzeitig auftreten können. Wenn mehrere gleichzeitige Werte vorhanden sein können, müssen Sie BitMap-/BitValues-verwenden. Wenn alle Werte sich gegenseitig ausschließen, sollten Sie die ValueMap/Values Qualifizierern verwenden.

ValueMap- und Wertqualifizierer