Compartilhar via


Obtendo e definindo metadados e atributos

Um aplicativo pode obter dois tipos de informações sobre um armazenamento ou dispositivo: atributos e metadados. Atributos são valores boolianos mais simples que geralmente descrevem informações do sistema de arquivos, como se um armazenamento tem objetos filho, se ele pode ser renomeado, lido ou excluído e assim por diante. Os atributos são recuperados como valores de sinalizadores chamando IWMDMStorage::GetAttributes ou IWMDMStorage2::GetAttributes2. Os atributos são definidos chamando IWMDMStorage3::SetMetadata.

Um aplicativo também pode solicitar dados mais complexos (numéricos, cadeias de caracteres ou outros tipos de dados) como metadados. Os valores de metadados são identificados por nomes de cadeia de caracteres exclusivos. O Windows Media Gerenciador de Dispositivos define uma lista de constantes de cadeia de caracteres que podem ser usadas para solicitar valores; esses valores definidos são listados em Constantes de Metadados. Um provedor de serviços pode definir suas próprias constantes, mas um aplicativo de chamada deve estar ciente dessas definições para solicitar ou definir esses valores de metadados personalizados. O aplicativo solicita metadados chamando IWMDMStorage3::GetMetadata ou IWMDMStorage4::GetSpecifiedMetadata.

Um aspecto importante para obter e definir metadados e atributos é entender de onde vêm os valores recuperados. O provedor de serviços ou o dispositivo podem obter esses valores de vários locais diferentes, incluindo o seguinte:

  • No cabeçalho do arquivo. Por exemplo, em um arquivo ASF, a taxa de bits é armazenada no cabeçalho do arquivo.
  • De valores definidos explicitamente pelo aplicativo ao chamar um método. Esses valores podem ser salvos em um repositório de metadados externo no provedor de serviços ou no dispositivo. Esse repositório pode ou não persistir quando o dispositivo se desconecta ou desativa. Por exemplo, a contagem de reprodução e as classificações de star de usuário normalmente são armazenadas em repositórios externos no computador ou no dispositivo.
  • Examinando as informações fornecidas pelo sistema de arquivos. Por exemplo, se um arquivo é somente leitura ou se uma pasta tem filhos.
  • Abrindo e analisando os dados do arquivo.

É importante perceber que uma propriedade pode ser armazenada em mais de um local (dentro do cabeçalho do arquivo e também em um repositório local) e que ela pode ou não ser editável. Por exemplo, alterar uma descrição de arquivo pode ou não ser persistente; se o provedor de serviços armazenar a descrição localmente, ele não persistirá no dispositivo. Da mesma forma, se a descrição do arquivo for obtida do cabeçalho do arquivo, modificar isso só será persistente se o provedor de serviços ou o dispositivo abrir e modificar os dados do cabeçalho. A maioria dos aplicativos faz uma melhor tentativa alterando os valores desejados, mas não depende de nenhuma propriedade a ser alterada persistentemente.

Mais informações sobre como obter e definir valores são fornecidas nas seções apropriadas para desenvolvedores de aplicativos e desenvolvedores de provedores de serviços posteriormente na documentação.

Tarefas comuns a aplicativos e provedores de serviços