IFileSystemImage3
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
このインターフェイスを使用して、UDF ファイルシステム (rev 2.50 以降) におけるメタデータファイルおよびメタデータミラーファイルを冗長化するかどうかを設定または確認します。
解説(Remarks)
メタデータファイルとメタデータミラーファイルが冗長化されるように設定されている場合、IMAPI はファイルシステムイメージ内にそれぞれの同一のコピーを作成し、その結果として耐障害性が向上します。メタデータファイルが冗長化されるように設定されていない場合、IMAPI はファイルシステムイメージ内に単一のコピーのみを作成するため、書き込み対象のディスク上で数 MB の領域を節約できます。
メタデータ冗長化オプションは、既定で TRUE に設定されています。
IFileSystemImage3 は MsftFileSystemImage3 オブジェクトの既定のインターフェイスです。
このインターフェイスは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista において Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。
メソッド 3
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
ファイルシステムイメージ内で UDF メタデータを冗長化するかどうかを指定するプロパティ値を取得します。
| pVal | VARIANT_BOOL* | out | 生成されるファイルシステムイメージ内で UDF メタデータを冗長化するかどうかを指定する値へのポインター。VARIANT_TRUE は UDF メタデータが冗長化されることを示し、それ以外の場合は VARIANT_FALSE です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。
| 戻り値/値 | 説明 |
|---|---|
|
ポインターが無効です。 |
解説(Remarks)
このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista において Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。
ファイルシステムイメージ内で UDF メタデータを冗長化するかどうかを指定するプロパティを設定します。
| newVal | VARIANT_BOOL | in | 生成されるファイルシステムイメージ内で UDF メタデータを冗長化するかどうかを指定します。VARIANT_TRUE は UDF メタデータが冗長化されることを示し、それ以外の場合は VARIANT_FALSE です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。
| 戻り値/値 | 説明 |
|---|---|
|
オプションは変更されましたが、実装されているファイルシステムのリビジョンではこの機能がサポートされていないため、この機能を使用せずにイメージが作成されます。 |
解説(Remarks)
UDF メタデータ冗長化オプションは、UDF リビジョン 2.50 以降にのみ影響します。生成されるイメージで作成が有効になっているファイルシステムの一覧に必要な UDF リビジョンが含まれていないファイルシステムオブジェクトに対してこのメソッドを呼び出した場合、このメソッドは IMAPI_S_IMAGE_FEATURE_NOT_SUPPORTED を返します。
このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista において Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。
現在のメディア上の特定のファイルシステムが IMAPI を通じて追記可能かどうかを判定します。
| fileSystemToProbe | FsiFileSystems | in | 調査対象とする、現在のメディア上のファイルシステム。 |
| isAppendable | VARIANT_BOOL* | out | 指定したファイルシステムが追記可能かどうかを示す VARIANT_BOOL 値。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。
解説(Remarks)
このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista において Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFileSystemImage3 "{7CFF842C-7E97-4807-8304-910DD8F7C051}" #usecom global IFileSystemImage3 IID_IFileSystemImage3 "{}" #comfunc global IFileSystemImage3_get_CreateRedundantUdfMetadataFiles 59 var #comfunc global IFileSystemImage3_put_CreateRedundantUdfMetadataFiles 60 int #comfunc global IFileSystemImage3_ProbeSpecificFileSystem 61 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFileSystemImage3 "{7CFF842C-7E97-4807-8304-910DD8F7C051}" #usecom global IFileSystemImage3 IID_IFileSystemImage3 "{}" #comfunc global IFileSystemImage3_get_CreateRedundantUdfMetadataFiles 59 sptr #comfunc global IFileSystemImage3_put_CreateRedundantUdfMetadataFiles 60 int #comfunc global IFileSystemImage3_ProbeSpecificFileSystem 61 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。