次の方法で共有


FSCTL_UPDATE_OVERLAY 制御コード

FSCTL_UPDATE_OVERLAY制御コードは、ボリュームに接続されているバッキング ソースの新しいデータ ソース識別子を更新します。

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

パラメーター

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

  • FileObject [入力]: FltFsControlFile のみ。 オーバーレイが更新されるボリュームのファイル ポインタ オブジェクト。 このパラメータは必須であり、NULL にすることはできません。

  • FileHandle [入力]: ZwFsControlFile のみ。 オーバーレイが更新されるボリュームのハンドル。 このパラメータは必須であり、NULL にすることはできません。

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

  • InputBuffer [in]: WOF_EXTERNAL_INFO 構造体を含む必要がある入力バッファーへのポインター。 必要に応じて、追加のプロバイダー固有のデータが WOF_EXTERNAL_INFO の直後に含まれます。 プロバイダーが WIM ファイルの場合、WIM_PROVIDER_UPDATE_OVERLAY_INPUT構造体は WOF_EXTERNAL_INFO 後に含まれます。

  • InputBufferLength [in]: sizeof(WOF_EXTERNAL_INFO) に追加のプロバイダー入力データのサイズを加えた値に設定します。

  • OutputBuffer[出力]:使用しません。 NULL に設定されている。

  • OutputBufferLength[出力]: 0に設定します。

ステータス ブロック

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

コード 意味
STATUS_ACCESS_DENIED 要求者には管理者権限がありません。
STATUS_BUFFER_TOO_SMALL InputBuffer が指し、InputBufferLength で指定されている入力バッファーの長さが小さすぎます。
STATUS_INTERNAL_ERROR 要求されたボリュームにアクセスできません。
STATUS_INVALID_DEVICE_REQUEST バッキング サービスが存在しないか、開始されていません。

解説

更新するデータ ソースが Windows イメージング形式 (WIM) ファイルの場合、入力バッファーには、WOF_EXTERNAL_INFO 構造体と、それに続いて WIM_PROVIDER_UPDATE_OVERLAY_INPUT 構造体が含まれます。 この場合の InputBufferLength は、sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_UPDATE_OVERLAY_INPUT) になります。 WIM_PROVIDER_UPDATE_OVERLAY_INPUTDataSourceId 値は、事前に FSCTL_ADD_OVERLAY 要求で追加された WIM ファイルでのものである必要があります。

他のバッキング プロバイダーは、独自の特定の入力パラメーター構造を定義します。

要件

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

関連項目

FSCTL_ADD_OVERLAY

FSCTL_REMOVE_OVERLAY

FSCTL_SUSPEND_OVERLAY

FSCTL_GET_EXTERNAL_BACKING

FSCTL_SET_EXTERNAL_BACKING