FltFsControlFile 関数 (fltkernel.h)

FltFsControlFile ルーチンは、指定したファイル システムまたはファイル システム フィルター ドライバーにコントロール コードを直接送信し、対応するドライバーが指定したアクションを実行します。

構文

NTSTATUS FLTAPI FltFsControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         FsControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out, optional] PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

パラメーター

[in] Instance

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

[in] FileObject

この要求のターゲットであるファイルまたはディレクトリのファイル オブジェクト ポインター。 このパラメーターは必須であり、 NULL にすることはできません。

[in] FsControlCode

FSCTL_実行するファイル システム操作を示すXXX コード。このパラメーターの値は 、InputBufferOutputBuffer の形式と必要な長さを決定し、次のパラメーター ペア (InputBufferInputBufferLengthOutputBufferOutputBufferLength) のうちどれが必要かを決定します。

[in, optional] InputBuffer

ターゲット ドライバーに提供されるデバイス固有の情報を含む呼び出し元によって割り当てられた入力バッファーへのポインター。 FsControlCode パラメーターが入力データを必要としない操作を指定する場合、このパラメーターは省略可能であり、NULL にすることができます。

[in] InputBufferLength

InputBuffer のバッファーのサイズ (バイト単位)。 InputBufferNULL の場合、この値は無視されます。

[out, optional] OutputBuffer

ターゲット ドライバーから情報が返される呼び出し元によって割り当てられた出力バッファーへのポインター。 FsControlCode パラメーターが出力データを必要としない操作を指定する場合、このパラメーターは省略可能であり、NULL にすることができます。

[in] OutputBufferLength

OutputBuffer のバッファーのサイズ (バイト単位)。 OutputBufferNULL の場合、この値は無視されます。

[out, optional] LengthReturned

OutputBuffer でバッファーに返される情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。

戻り値

FltFsControlFile は 、STATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

注釈

ミニフィルター ドライバーは、 ZwFsControlFile の代わりにこのルーチンを呼び出す必要があります。

現在、カーネル モード ドライバーについては、次の FSCTL コードが文書化されています。

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FSCTL_SET_REPARSE_POINT

システム定義のFSCTL_XXX コードの詳細については、Microsoft Windows SDKドキュメントの DeviceIoControl のリファレンス エントリの「解説」セクションを参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL PASSIVE_LEVEL

こちらもご覧ください

FltDeviceIoControlFile

ZwFsControlFile