реализация файловой системы IPropertyStorage-NTFS
NTFS версии 5.0 предоставляет реализацию интерфейса IPropertyStorage для файлов в томе NTFS, если файлы не являются составными.
Получение указателя на реализацию файловой системы NTFS для IPropertySetStorage
- Вызов IPropertySetStorage::Create с помощью реализации NTFS IPropertySetStorage.
- Вызов IPropertySetStorage::Open с помощью реализации NTFS IPropertySetStorage.
Когда следует использовать
Используйте IPropertyStorage для управления свойствами в одном наборе свойств. Его методы поддерживают чтение, запись и удаление свойств и необязательные имена строк, которые могут быть связаны с идентификаторами свойств. Другой метод позволяет задать время, связанное с хранилищем свойств, и другой разрешает назначение CLSID, используемого для связывания другого кода, например кода пользовательского интерфейса с набором свойств. Вызов метода Enum предоставляет указатель на реализацию NTFS IEnumSTATPROPSTG, которая позволяет перечислить свойства в наборе.
Замечания
Реализация NTFS предоставляет практически те же функции, что и реализация составного файла. Дополнительные сведения см. в IPropertyStorage-Compoundреализации файлов.
Так как 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. Как и в составной реализации файла, режим транзакций возможен только для хранилищ свойств nonsimple (указывая PROPSETFLAG_NONSIMPLE в параметре grfFlags).
Связанные разделы