次の方法で共有


FSCTL_GET_EXTERNAL_BACKING 制御コード

FSCTL_GET_EXTERNAL_BACKING 制御コードは、外部バッキング プロバイダーからファイルのバッキング情報を取得します。 バッキング プロバイダーには、Windows Image Format (WIM) プロバイダーまたは個々の圧縮ファイル プロバイダーが含まれます。 外部でバックアップされたファイルのコンテンツは、照会されたファイルを含むボリューム以外のボリュームに存在する場合があります。

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

パラメーター

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

  • FileObject [in]: FltFsControlFile のみ。 バッキング情報が照会されるファイルのファイル ポインター オブジェクト。 このパラメーターは必須であり、NULL にすることはできません。

  • FileHandle [in]: ZwFsControlFile のみ。 バッキング情報が照会されるファイルのハンドル。 このパラメーターは必須であり、NULL にすることはできません。

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

  • InputBuffer [in]: なし。 NULL に設定します。

  • InputBufferLength [in]: 0 に設定します。

  • OutputBuffer [out]: 出力バッファーへのポインター。WOF_EXTERNAL_INFO 構造体と後に続くプロバイダー データを受け取るのに十分な大きさのサイズが必要です。 WIM でバックアップされたファイルの場合、WOF_EXTERNAL_INFO の後に WIM_PROVIDER_EXTERNAL_INFO 構造体が続きます。 個別に圧縮されたファイルの場合、WOF_EXTERNAL_INFO の後に FILE_PROVIDER_EXTERNAL_INFO_V1 構造体が続きます。

  • OutputBufferLength [out]: OutputBuffer が指し示すバッファーのサイズ (バイト単位)。

  • LengthReturned [out]: 正常に完了した場合に OutputBuffer に書き込まれるバイト数を指定します。

ステータスブロック

FltFsControlFile または ZwFsControlFile は、操作が成功した場合に STATUS_SUCCESS を返します。 それ以外の場合は、適切な関数から次の NTSTATUS 値のいずれかが返される可能性があります。

コード 意味
STATUS_OBJECT_NOT_EXTERNALLY_BACKED ファイルは外部でバックアップされていません。
STATUS_INVALID_DEVICE_REQUEST バッキング サービスが存在しないか、開始されていません。

解説

更新するデータ ソースのバッキング プロバイダーが WIM ファイルである場合、出力バッファーには、WOF_EXTERNAL_INFO 構造体と、その後に WIM_PROVIDER_EXTERNAL_INFO 構造体が含められます。 OutputBufferLength は、少なくとも sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_EXTERNAL_INFO) である必要があります。 バッキング プロバイダーが個別に圧縮されたファイルである場合、出力バッファーには、WOF_EXTERNAL_INFO 構造体と、その後に FILE_PROVIDER_EXTERNAL_INFO_V1 構造体が含められます。

要件

要件タイプ 要件
サポートされている最小のクライアント Windows 8.1 Update
ヘッダー Ntifs.h (Ntifs.h または Fltkernel.h を含む)

関連項目

FltFsControlFile

ZwFsControlFile

FSCTL_SET_EXTERNAL_BACKING

WIM_PROVIDER_EXTERNAL_INFO

WOF_EXTERNAL_INFO