Compartilhar via


Localizar propriedades estáticas

Você pode localizar propriedades estáticas usando mapas de valores parciais.

O procedimento a seguir descreve como as propriedades estáticas podem ser localizadas usando mapas de valores parciais com expressões regulares.

Para usar mapas de valores para localizar propriedades estáticas

  1. Crie um arquivo MOF master (Mastervm.mof).

    O exemplo de código a seguir pode ser usado para criar um arquivo MOF master (Mastervm.mof).

    [Locale(0x409)]
    class Group1
    {
        [key] string ID;
        [DisplayName("Numbers"),
            ValueMap{0,1,2,3}:amended,
            Values{"Zero", "One", "Two", "Three"}:amended]
        Uint32 Numbers;
    };
    
  2. Crie as versões com neutralidade de idioma e específicas do idioma do arquivo MOF.

    Digite o comando a seguir em um prompt de comando para criar as versões com neutralidade de idioma e específicas do idioma do arquivo MOF.

    mofcomp -MOF:LnVm.mof -MFL:LsVm.mfl -Amendment:MS_409 MasterVm.mof
    

    O compilador MOF gera os arquivos MOF específicos do idioma e com neutralidade de idioma, LnVm.mof e LsVm.mfl. Os valores americanos em inglês para a propriedade Numbers são colocados no arquivo .mfl para o namespace de inglês americano.

    O exemplo de código a seguir mostra o conteúdo do arquivo LsVm.mfl.

    #pragma namespace("\\\\.\\root\\default")
    instance of __namespace{ name="ms_409";};
    #pragma namespace("\\\\.\\root\\default\\ms_409")
    
    [AMENDMENT, LOCALE(0x409)] 
    class Group1
    {
      [ValueMap{0, 1, 2, 3} : Amended,
          Values{"Zero", "One", "Two", "Three"} : Amended] 
      Uint32 Numbers;
    };
    
  3. Compile os dois arquivos MOF e armazene as informações de classe no repositório do CIM.

    Digite o comando a seguir em um prompt de comando para compilar os dois arquivos MOF.

    Mofcomp LnVm.mof 
    Mofcomp LsVm.mfl
    
  4. Localize o arquivo MFL para outras localidades.

    O exemplo de código a seguir mostra o conteúdo de um arquivo MFL para o namespace de francês.

    #pragma namespace("\\\\.\\root\\default")
    instance of __namespace{ name="ms_40C";};
    #pragma namespace("\\\\.\\root\\default\\ms_40C")
    
    [AMENDMENT, LOCALE(0x40C)] 
    class Group1
    {
        [key] string ID;
        [ValueMap{0, 1, 2, 3} : Amended,
            Values{"Zero", "Un", "Deux", "Trois"} : Amended]
        Uint32 Numbers;
    };
    

O resultado líquido é que o nome de exibição e o valor da propriedade Numbers dependem da localidade do usuário conectado. Se o usuário especificar uma localidade que não tenha sido fornecida, os dados do qualificador padrão serão provenientes do namespace de inglês (ms_409).

A implicação desse design é que cada valor de cadeia de caracteres é usado como um identificador de pesquisa, que não pode ser localizado. Ao definir esse esquema, você deve garantir que o valor colocado pelo provedor seja independente de localidade.

Observação

Atualmente, o WMI não fornece suporte em tempo de execução para valores de mapeamento para cadeias de caracteres definidas por qualificadores. A interpretação da sintaxe sugerida é responsabilidade do aplicativo.