次の方法で共有


FSCTL_SUSPEND_OVERLAY 制御コード

FSCTL_SUSPEND_OVERLAY 制御コードは、ボリュームにアタッチされているバッキング ソースを中断し、バッキング ソースへのアクセスを防ぎ、変更または削除できるようにします。

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

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        FSCTL_SUSPEND_OVERLAY, // dwIoControlCode
                    (LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      lpOutBuffer,     // output buffer
                    (DWORD)        nOutBufferSize,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure

パラメーター

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

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

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

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

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

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

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

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

ステータスブロック

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

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

解説

削除するバッキング ソースが Windows Imaging Format (WIM) ファイルである場合、入力バッファーには WOF_EXTERNAL_INFO 構造体と、その後に WIM_PROVIDER_SUSPEND_OVERLAY_INPUT 構造体が含められます。 この場合の InputBufferLength は、sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_REMOVE_OVERLAY_INPUT) になります。 WIM_PROVIDER_SUSPEND_OVERLAY_INPUTDataSourceId の値は、FSCTL_ADD_OVERLAY 要求であらかじめ追加された WIM ファイルのものである必要があります。

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

要件

要件タイプ 要件
ヘッダー Ntifs.h (Ntifs.h または Fltkernel.h を含む)

関連項目

FSCTL_REMOVE_OVERLAY

FSCTL_UPDATE_OVERLAY

FSCTL_GET_EXTERNAL_BACKING

FSCTL_SET_EXTERNAL_BACKING