Реализация файловой системы IPropertyStorage-NTFS
NTFS версии 5.0 предоставляет реализацию интерфейса IPropertyStorage для файлов на томе NTFS, когда файлы не являются составными файлами.
Получение указателя на реализацию IPropertySetStorage в файловой системе NTFS
- Вызовите метод IPropertySetStorage::Create с помощью реализации NTFS IPropertySetStorage.
- Вызовите метод IPropertySetStorage::Open , используя реализацию файловой системы NTFS IPropertySetStorage.
Назначение
Используйте IPropertyStorage для управления свойствами в одном наборе свойств. Его методы поддерживают чтение, запись и удаление свойств, а также необязательные строковые имена, которые могут быть связаны с идентификаторами свойств. Другой метод позволяет задать время, связанное с хранилищем свойств, а другой разрешает назначение идентификатора CLSID, используемого для связывания другого кода, например кода пользовательского интерфейса, с набором свойств. Вызов метода Enum предоставляет указатель на реализацию NTFS IEnumSTATPROPSTG, которая позволяет перечислить свойства в наборе.
Комментарии
Реализация NTFS предоставляет практически те же функции, что и реализация составного файла. Дополнительные сведения см. в разделе Реализация составного файла IPropertyStorage.
Так как NTFS является надежной файловой системой, набор свойств NTFS никогда не будет оставаться в неправильном состоянии. Когда содержимое NTFS IPropertyStorage сбрасывается в базовый ФАЙЛ NTFS, все или ни одно состояние записывается в файл как атомарная операция, даже если во время операции произошел сбой, например аномальное завершение процесса. Чтобы добиться аналогичного поведения с реализацией составного файла, необходимо открыть родительский интерфейс IPropertySetStorage в режиме транзакций.
Этот уровень надежности возможен только при доступе к свойству NTFS, заданному на томе NTFS 5.0. Можно получить доступ к наборам свойств NTFS в более ранних версиях NTFS (например, на компьютере под управлением Windows NT или Windows 2000, который обращается к наборам свойств на компьютере файлового сервера, работающем на Windows NT 4.0), но они не гарантируются в правильном состоянии в случае неожиданного сбоя.
Хотя реализация NTFS IPropertySetStorage не поддерживает транзакцию, реализация NTFS IPropertyStorage поддерживает ее. То есть STGM_TRANSACTED можно указать в параметре grfMode для методов Create и Openобъекта IPropertySetStorage. Как и в реализации составного файла, режим транзакций возможен только для хранилищ неимплированных свойств (указывая PROPSETFLAG_NONSIMPLE в параметре grfFlags ).
Связанные темы