Implementação do sistema de arquivos IPropertyStorage-NTFS
A versão 5.0 do NTFS fornece uma implementação da interface IPropertyStorage para arquivos em um volume NTFS quando os arquivos não são arquivos compostos.
Para obter um ponteiro para a implementação do sistema de arquivos NTFS de IPropertySetStorage
- Chame IPropertySetStorage::Create usando a implementação NTFS de IPropertySetStorage.
- Chame IPropertySetStorage::Open usando a implementação NTFS de IPropertySetStorage.
Quando usar
Use IPropertyStorage para gerenciar propriedades em um único conjunto de propriedades. Seus métodos dão suporte à leitura, gravação e exclusão de propriedades e aos nomes de cadeia de caracteres opcionais que podem ser associados a identificadores de propriedade. Outro método permite que você defina horários associados ao armazenamento de propriedades e outro permite a atribuição de um CLSID, usado para associar outro código, como código de interface do usuário (interface do usuário), ao conjunto de propriedades. Chamar o método Enum fornece um ponteiro para a implementação NTFS de IEnumSTATPROPSTG, que permite enumerar as propriedades no conjunto.
Comentários
A implementação do NTFS fornece essencialmente os mesmos recursos que a implementação de arquivo composto. Para obter mais informações, consulte Implementação de arquivo composto IPropertyStorage.
Como o NTFS é um sistema de arquivos robusto, um conjunto de propriedades NTFS nunca será deixado em um estado incorreto. Quando o conteúdo de um NTFS IPropertyStorage é liberado para o arquivo NTFS subjacente, todo ou nenhum estado é gravado no arquivo como uma operação atômica, mesmo que haja uma falha durante a operação, como um encerramento anormal do processo. Para obter um comportamento semelhante com a implementação de arquivo composto, a interface IPropertySetStorage pai deve ser aberta no modo transacionado.
Esse nível de robustez só é possível ao acessar uma propriedade NTFS definida em um volume NTFS 5.0. É possível acessar conjuntos de propriedades NTFS em versões anteriores do NTFS (por exemplo, um computador em execução no Windows NT ou windows 2000 que acessa os conjuntos de propriedades em um computador servidor de arquivos em execução no Windows NT 4.0), mas eles não têm garantia de estar em um estado correto em caso de falha inesperada.
Embora a implementação NTFS de IPropertySetStorage não dê suporte à transação, a implementação NTFS de IPropertyStorage dá suporte a ela. Ou seja, STGM_TRANSACTED pode ser especificado no parâmetro grfMode para os métodos Create e Open de IPropertySetStorage. Assim como na implementação de arquivo composto, o modo transacionado só é possível para armazenamentos de propriedades não simplificados (especificando PROPSETFLAG_NONSIMPLE no parâmetro grfFlags ).
Tópicos relacionados