次の方法で共有


FSCTL_ENUM_EXTERNAL_BACKING 制御コード

FSCTL_ENUM_EXTERNAL_BACKING 制御コードは、バッキング ソースがあるボリューム上のファイルの列挙を開始または続行します。 要求が正常に完了するたびに、バックアップされたファイルの識別子が返されます。 どの外部プロバイダーがバックアップしているかに関係なく、すべてのバックアップされたファイルが列挙されます。 ボリューム上のすべてのバックアップされたファイルを列挙するには、連続する FSCTL_ENUM_EXTERNAL_BACKING 要求が必要です。

この操作を実行するには、次のパラメーターを指定して FltFsControlFile または ZwFsControlFile を呼び出します。

パラメーター

  • インスタンス [in]: FltFsControlFile のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。

  • FileObject [in]: FltFsControlFile のみ。 マウント解除するボリュームを指定するファイル ポインター オブジェクト。 このパラメーターは必須であり、NULL にすることはできません。

  • FileHandle [in]: ZwFsControlFile のみ。 マウント解除するボリュームのファイル ハンドル。 このパラメーターは必須であり、NULL にすることはできません。

  • FsControlCode [in]: 操作の制御コード。 この操作には FSCTL_ENUM_EXTERNAL_BACKING を使用します。

  • InputBuffer [in]: なし。 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 値のいずれかが返される可能性があります。

コード 意味
STATUS_ACCESS_DENIED 要求者が管理者特権を持っていません。
STATUS_BUFFER_TOO_SMALL OutputBuffer によって指し示され、OutputBufferLength によって指定された出力バッファーの長さが短かすぎます。
STATUS_NO_MORE_FILES バッキング ソースを持つファイルはボリューム上にこれ以上ありません。
STATUS_INTERNAL_ERROR 要求されたボリュームにアクセスできません。
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

ZwFsControlFile

FSCTL_GET_EXTERNAL_BACKING