Partilhar via


Qualificadores BitMap e BitValue

Um bitmap é um inteiro vinculado a uma propriedade com o BitMap e qualificadores BitValue. Cada bit do valor da propriedade atua como um índice na matriz de valores na lista BitValue. Como vários bits no valor da propriedade podem estar "on" ao mesmo tempo, é possível usar um único valor de propriedade para indicar vários valores simultâneos.

Por exemplo, o exemplo de código MOF a seguir estabelece a propriedade FileType como tendo os BitMap e BitValues qualificadores. Estabelece ainda que o bit de ordem baixa (bit 0) corresponde ao valor "Somente leitura". O próximo bit (bit 1) corresponde a "Oculto", e assim por diante. (Nem todos os bits devem ser significativos. Neste sistema de oito bits, os dois bits de alta ordem, 6 e 7, não têm significado.)

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

Se a propriedade FileType relatar o valor 7 (bits 0000 0111), o arquivo será "Somente leitura", "Sistema" e "Oculto". Se a propriedade FileType relatar o valor 18 (0x12, bits 0001 0010), é um subdiretório oculto.

Há dois tipos diferentes de bitmaps usando o código MOF:

  • Bits significativos consecutivos começando com o bit de ordem baixa (bit 0)

    Você pode definir uma matriz de valores de bits sem especificar explicitamente os bits significativos se os bits significativos começarem com o bit de ordem baixa (bit 0) e progredirem para cima sem interrupção através de todos os itens na matriz BitValue. O exemplo de código MOF a seguir executa a mesma função que o exemplo anterior.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Bit significativo precedido por um bit não significativo

    Se o bit de ordem baixa for insignificante ou se a sequência de bits significativos não for contínua, você deverá especificar o BitMap e qualificadores BitValues. O exemplo de código MOF a seguir mostra uma situação na qual o bit de ordem baixa não é significativo e há uma lacuna na sequência de bits significativos.

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

    Nesse caso, definir o bit de ordem baixa (bit 0) não tem significado e é ignorado. No entanto, a configuração do bit 1 (0x2) indica que essa mensagem de email está sinalizada para acompanhamento, a configuração do bit 4 (0x8) indica que um recibo de entrega deve ser enviado ao remetente quando a mensagem de email chegar à caixa de correio do destinatário e a configuração do bit 5 (0x10) especifica que uma confirmação de leitura deve ser enviada ao remetente quando a mensagem de email for aberta pelo destinatário. Definir todos os três bits significativos (0x1A) especifica todas as três condições para a mensagem de email.

Comentários

Ao decidir se deve usar o BitMap/BitValues ou ValueMap/Values qualificadores, determine se algum dos valores indicados pode ocorrer simultaneamente. Se vários valores simultâneos podem existir, você deve usar BitMap/BitValues. Se todos os valores forem mutuamente exclusivos, você deverá usar o ValueMap/Valores qualificadores.

ValueMap e Qualificadores de Valor