FSCTL_ADD_OVERLAY 制御コード
FSCTL_ADD_OVERLAY 制御コードは、ボリュームの名前空間に新しい外部バッキング ソースを追加します。 このバッキング ソースには、Windows Image Format (WIM) ファイルを指定できます。
この操作を実行するには、次のパラメーターを指定して FltFsControlFile または ZwFsControlFile を呼び出します。
パラメーター
インスタンス [in]: FltFsControlFile のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。
FileObject [in]: FltFsControlFile のみ。 オーバーレイが追加されるボリュームのファイル ポインター オブジェクト。 このパラメーターは必須であり、NULL にすることはできません。
FileHandle [in]: ZwFsControlFile のみ。 オーバーレイが追加されるボリュームのハンドル。 このパラメーターは必須であり、NULL にすることはできません。
FsControlCode [in]: 操作の制御コード。 この操作には FSCTL_ADD_OVERLAY を使用します。
InputBuffer [in]: WOF_EXTERNAL_INFO 構造体を含む入力バッファーへのポインター。 必要に応じて、WOF_EXTERNAL_INFO の直後に追加のプロバイダー固有のデータが含められます。
InputBufferLength[in]: sizeof(WOF_EXTERNAL_INFO) に、追加プロバイダーの入力データのサイズを加えたものに設定します。
OutputBuffer [out]: 出力バッファーへのポインター。追加操作の結果の情報が含まれます。
OutputBufferLength [out]: OutputBuffer が指し示すバッファーのサイズ。
ステータスブロック
FltFsControlFile または ZwFsControlFile は、操作が成功した場合に STATUS_SUCCESS を返します。 それ以外の場合は、適切な関数から次の NTSTATUS 値のいずれかが返される可能性があります。
コード | 意味 |
---|---|
STATUS_ACCESS_DENIED | 要求者が管理者特権を持っていません。 |
STATUS_BUFFER_TOO_SMALL | OutputBuffer によって指し示され、OutputBufferLength によって指定された出力バッファーの長さが短かすぎます。 |
STATUS_INTERNAL_ERROR | 要求されたボリュームにアクセスできません。 |
STATUS_INVALID_DEVICE_REQUEST | バッキング サービスが存在しないか、開始されていません。 |
解説
追加するバッキング ソースが Windows Imaging Format (WIM) ファイルである場合、入力バッファーには WOF_EXTERNAL_INFO 構造体と、その後に WIM_PROVIDER_ADD_OVERLAY_INPUT 構造体が含められます。 この場合の InputBufferLength は、sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_ADD_OVERLAY_INPUT) になります。 要求が完了すると、OutputBuffer が指し示すデータには、WIM ファイルの新しいデータ ソース識別子である 1 つの LARGE_INTEGER 値が含まれます。
他のバッキング プロバイダーは、独自の入力パラメーター構造と出力データ型を定義します。
要件
要件タイプ | 要件 |
---|---|
サポートされている最小のクライアント | Windows 8.1 Update |
ヘッダー | Ntifs.h (Ntifs.h または Fltkernel.h を含む) |