IPropertyStorage-NTFS-Dateisystemimplementierung
Die NTFS-Version 5.0 stellt eine Implementierung der IPropertyStorage-Schnittstelle für Dateien auf einem NTFS-Volume bereit, wenn es sich bei den Dateien nicht um Verbunddateien handelt.
So erhalten Sie einen Zeiger auf die NTFS-Dateisystemimplementierung von IPropertySetStorage
- Rufen Sie IPropertySetStorage::Create mithilfe der NTFS-Implementierung von IPropertySetStorage auf.
- Rufen Sie IPropertySetStorage::Open mithilfe der NTFS-Implementierung von IPropertySetStorage auf.
Verwendung
Verwenden Sie IPropertyStorage, um Eigenschaften innerhalb eines einzelnen Eigenschaftensets zu verwalten. Die zugehörigen Methoden unterstützen das Lesen, Schreiben und Löschen von Eigenschaften und die optionalen Zeichenfolgennamen, die Eigenschaftsbezeichnern zugeordnet werden können. Eine andere Methode ermöglicht ihnen das Festlegen von Zeiten, die dem Eigenschaftenspeicher zugeordnet sind, und eine andere ermöglicht die Zuweisung einer CLSID, die verwendet wird, um anderen Code, z. B. Benutzeroberflächencode, dem Eigenschaftensatz zu zuordnen. Das Aufrufen der Enum-Methode stellt einen Zeiger auf die NTFS-Implementierung von IEnumSTATPROPSTGzur Verfügung, mit der Sie die Eigenschaften in der Gruppe aufzählen können.
Hinweise
Die NTFS-Implementierung bietet im Wesentlichen die gleichen Features wie die Verbunddateiimplementierung. Weitere Informationen finden Sie unter IPropertyStorage-Compound File Implementation.
Da NTFS ein stabiles Dateisystem ist, wird ein NTFS-Eigenschaftensatz nie in einem falschen Zustand befließen. Wenn der Inhalt einer NTFS-IPropertyStorage-Datei in die zugrunde liegende NTFS-Datei geleert wird, wird entweder der ganze oder keiner der Status als atomarer Vorgang in die Datei geschrieben, selbst wenn während des Vorgangs ein Fehler vor sich geht, z. B. eine ungewöhnliche Prozessbeendigung. Um ein ähnliches Verhalten mit der Verbunddateiimplementierung zu erzielen, muss die übergeordnete IPropertySetStorage-Schnittstelle im Transaktionsmodus geöffnet werden.
Diese Stabilitätsstufe ist nur möglich, wenn auf eine NTFS-Eigenschaft, die auf einem NTFS 5.0-Volume festgelegt ist, zu zugreifen. Es ist möglich, auf NTFS-Eigenschaftensätze in früheren Versionen von NTFS zu zugreifen (z. B. auf einem Computer, der unter Windows NT oder Windows 2000 ausgeführt wird und auf die Eigenschaftensätze auf einem Dateiservercomputer unter Windows NT 4.0 zugeht), bei einem unerwarteten Fehler wird jedoch nicht garantiert, dass sie sich in einem richtigen Zustand befinden.
Obwohl die NTFS-Implementierung von IPropertySetStorage keine Transaktion unterstützt, wird sie von der NTFS-Implementierung von IPropertyStorage unterstützt. Das heißt, STGM _ TRANSACTED kann im grfMode-Parameter für die Create- und Open-Methoden von IPropertySetStorage angegeben werden. Wie bei der Verbunddateiimplementierung ist der Transaktionsmodus nur für nicht einfache Eigenschaftenspeicher möglich (Angabe von PROPSETFLAG _ NONSIMPLE im parameter grfFlags).