次の方法で共有


IPropertyStorage-NTFS ファイル システムの実装

NTFS バージョン 5.0 は、ファイルが複合ファイルでない場合に、NTFS ボリューム上のファイルに対する IPropertyStorage インターフェイスの実装を提供します。

IPropertySetStorage の NTFS ファイル システム実装へのポインターを取得するには

  1. IPropertySetStorage::CreateIPropertySetStorageの NTFS 実装を使用して呼び出します。
  2. IPropertySetStorageの NTFS 実装を使用して、IPropertySetStorage::Open呼び出します。

使用するタイミング

IPropertyStorage を使用して、1 つのプロパティ セット内のプロパティを管理します。 そのメソッドは、プロパティの読み取り、書き込み、削除、およびプロパティ識別子に関連付けることができる省略可能な文字列名をサポートします。 別のメソッドを使用すると、プロパティ ストレージに関連付けられた時間を設定できます。また、ユーザー インターフェイス (UI) コードなどの他のコードをプロパティ セットに関連付けるために使用される CLSID の割り当てを許可することもできます。 Enum メソッドを呼び出すと、IEnumSTATPROPSTGの NTFS 実装へのポインターが提供されます。これにより、セット内のプロパティを列挙できます。

備考

NTFS 実装は、基本的に複合ファイルの実装と同じ機能を提供します。 詳細については、「IPropertyStorage-Compound ファイル実装」を参照してください。

NTFS は堅牢なファイル システムであるため、NTFS プロパティ セットが正しくない状態のままになることはありません。 NTFS IPropertyStorage の内容が基になる NTFS ファイルにフラッシュされると、異常なプロセス終了などの操作中にエラーが発生した場合でも、すべての状態がアトミック操作としてファイルに書き込まれます。 複合ファイルの実装と同様の動作を実現するには、IPropertySetStorageインターフェイス親をトランザクション モードで開く必要があります。

このレベルの堅牢性は、NTFS 5.0 ボリュームで設定された NTFS プロパティにアクセスする場合にのみ可能です。 以前のバージョンの NTFS (Windows NT で実行されているコンピューターや、Windows NT 4.0 で実行されているファイル サーバー コンピューター上のプロパティ セットにアクセスする Windows 2000 など) で NTFS プロパティ セットにアクセスすることはできますが、予期しないエラーが発生した場合に正しい状態になることは保証されません。

IPropertySetStorage の NTFS 実装ではトランザクションはサポートされていませんが、IPropertyStorage の NTFS 実装ではサポートされています。 つまり、STGM_TRANSACTED は、IPropertySetStorageCreate および Open メソッドに対する grfMode パラメーターで指定できます。 複合ファイルの実装と同様に、トランザクション モードは非simple プロパティ ストレージに対してのみ可能です (grfFlags パラメーターで PROPSETFLAG_NONSIMPLE を指定します)。

IPropertyStorage

IPropertySetStorage-NTFS ファイル システムの実装