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 コード。このパラメーターの値は 、InputBuffer と OutputBuffer の形式と必要な長さを決定し、次のパラメーター ペア (InputBuffer と InputBufferLength、 OutputBuffer 、 OutputBufferLength) のうちどれが必要かを決定します。
[in, optional] InputBuffer
ターゲット ドライバーに提供されるデバイス固有の情報を含む呼び出し元によって割り当てられた入力バッファーへのポインター。 FsControlCode パラメーターが入力データを必要としない操作を指定する場合、このパラメーターは省略可能であり、NULL にすることができます。
[in] InputBufferLength
InputBuffer のバッファーのサイズ (バイト単位)。 InputBuffer が NULL の場合、この値は無視されます。
[out, optional] OutputBuffer
ターゲット ドライバーから情報が返される呼び出し元によって割り当てられた出力バッファーへのポインター。 FsControlCode パラメーターが出力データを必要としない操作を指定する場合、このパラメーターは省略可能であり、NULL にすることができます。
[in] OutputBufferLength
OutputBuffer のバッファーのサイズ (バイト単位)。 OutputBuffer が NULL の場合、この値は無視されます。
[out, optional] LengthReturned
OutputBuffer でバッファーに返される情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
FltFsControlFile は 、STATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
注釈
ミニフィルター ドライバーは、 ZwFsControlFile の代わりにこのルーチンを呼び出す必要があります。
現在、カーネル モード ドライバーについては、次の FSCTL コードが文書化されています。
FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
システム定義のFSCTL_XXX コードの詳細については、Microsoft Windows SDKドキュメントの DeviceIoControl のリファレンス エントリの「解説」セクションを参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |