次の方法で共有


コントロール コードのFSCTL_UPDATE_OVERLAY

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

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

パラメーター

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

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

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

  • FsControlCode [in]: 操作のコントロール コード。 この操作 にはFSCTL_UPDATE_OVERLAY を使用します。

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

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

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

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

状態ブロック

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

Code 意味
アクセス拒否 リクエスターは管理特権を持っていません。
STATUS_BUFFER_TOO_SMALL InputBuffer によって指され、InputBufferLength で指定された入力バッファーの長さが小さすぎます。
ステータス_内部エラー 要求されたボリュームにアクセスできません。
STATUS_INVALID_DEVICE_REQUEST バッキング サービスが存在しないか、開始されていません。

注釈

更新するデータ ソースが Windows イメージング形式 (WIM) ファイルの場合、入力バッファーには 、WOF_EXTERNAL_INFO 構造体の後に WIM_PROVIDER_UPDATE_OVERLAY_INPUT 構造体が含まれます。 この場合の InputBufferLengthsizeof(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