FSCTL_ENUM_EXTERNAL_BACKING コントロール コードは、バッキング ソースがあるボリューム上のファイルの列挙を開始または続行します。 要求が正常に完了するたびに、バックアップされたファイルの識別子が返されます。 どの外部プロバイダーがバックアップしているかに関係なく、すべてのバックアップされたファイルが列挙されます。 ボリューム上のすべてのバックアップされたファイルを列挙するには、連続する FSCTL_ENUM_EXTERNAL_BACKING 要求が必要です。
この操作を実行するには、FltFsControlFile
パラメーター
インスタンス [in]: FltFsControlFile のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL することはできません。
FileObject [in]: FltFsControlFile のみ。 マウント解除するボリュームを指定するファイル ポインター オブジェクト。 このパラメーターは必須であり、NULL することはできません。
FileHandle [in]: ZwFsControlFile のみ。 マウント解除するボリュームのファイル ハンドル。 このパラメーターは必須であり、NULL することはできません。
FsControlCode [in]: 操作のコードを制御します。 この操作 にはFSCTL_ENUM_EXTERNAL_BACKING を使用します。
InputBuffer [in]: None。 NULL に設定します。
InputBufferLength [in]: 0 に設定します。
OutputBuffer [out]: 出力バッファーへのポインター。1 つ以上の WOF_EXTERNAL_FILE_ID 構造体を受け取るのに十分な大きさのサイズが必要です。
OutputBufferLength [out]: OutputBuffer が指す出力バッファーのサイズ。 OutputBufferLength は >= sizeof(WOF_EXTERNAL_FILE_ID) である必要があります。
LengthReturned [out]: 正常に完了した場合に OutputBuffer に書き込まれるバイト数を指定します。
状態ブロック
FltFsControlFile または ZwFsControlFile は、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、適切な関数は、次の NTSTATUS 値のいずれかを返す可能性があります。
| Code | 意味 |
|---|---|
| アクセス拒否 | リクエスターは管理特権を持っていません。 |
| STATUS_BUFFER_TOO_SMALL | OutputBuffer によって指され、OutputBufferLength で指定された出力バッファーの長さが小さすぎます。 |
| STATUS_NO_MORE_FILES | ボリューム上のこれ以上のファイルにはバッキング ソースがありません。 |
| ステータス_内部エラー | 要求されたボリュームにアクセスできません。 |
| STATUS_INVALID_DEVICE_REQUEST | バッキング サービスが存在しないか、開始されていません。 |
注釈
OutputBuffer で返されるWOF_EXTERNAL_FILE_ID構造体には、バックアップされたファイルの一意のファイル識別子が含まれています。 構造体は ntifs.h で次のように定義されています。
typedef struct _WOF_EXTERNAL_FILE_ID {
FILE_ID_128 FileId;
} WOF_EXTERNAL_FILE_ID, *PWOF_EXTERNAL_FILE_ID;
FSCTL_ENUM_EXTERNAL_BACKING要求が連続して発行され、バッキング ソースを持つボリューム上の各ファイルの識別子が取得されます。 すべてのファイルが列挙されると、STATUS_NO_MORE_FILES状態コードが返されます。
要求事項
| 要件タイプ | 要件 |
|---|---|
| サポートされている最小のクライアント | Windows 8.1 Update |
| ヘッダ | Ntifs.h ( Ntifs.h または Fltkernel.h を含む) |
こちらも参照ください
FltFsControlFile の