FltDeviceIoControlFile 関数 (fltkernel.h)
FltDeviceIoControlFile は、コントロール コードを指定したデバイス ドライバーに直接送信し、対応するドライバーが指定したアクションを実行します。
構文
NTSTATUS FLTAPI FltDeviceIoControlFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] ULONG IoControlCode,
[in, optional] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[in] ULONG OutputBufferLength,
[out, optional] PULONG LengthReturned
);
パラメーター
[in] Instance
呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、 NULL にすることはできません。
[in] FileObject
この要求のターゲットであるファイルまたはデバイスのファイル オブジェクト ポインター。 このパラメーターは必須であり、 NULL にすることはできません。
[in] IoControlCode
IOCTL_実行するデバイス I/O 操作を示すXXX コード。このパラメーターの値は 、InputBuffer と OutputBuffer の形式と必要な長さを決定し、次のパラメーター ペア (InputBuffer と InputBufferLength、 または OutputBuffer と OutputBufferLength) のどれが必要かを決定します。
[in, optional] InputBuffer
ターゲット ドライバーに提供されるデバイス固有の情報を含む呼び出し元によって割り当てられた入力バッファーへのポインター。 IoControlCode パラメーターで入力データを必要としない操作が指定されている場合、このパラメーターは省略可能であり、NULL にすることができます。
[in] InputBufferLength
InputBuffer のバッファーのサイズ (バイト単位)。 InputBuffer が NULL の場合、この値は無視されます。
[out] OutputBuffer
ターゲット ドライバーから情報が返される呼び出し元によって割り当てられた出力バッファーへのポインター。 IoControlCode パラメーターで出力データを必要としない操作が指定されている場合、このパラメーターは省略可能であり、NULL にすることができます。
[in] OutputBufferLength
OutputBuffer のバッファーのサイズ (バイト単位)。 OutputBuffer が NULL の場合、この値は無視されます。
[out, optional] LengthReturned
OutputBuffer でバッファーに返される情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
FltDeviceIoControlFile は 、STATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
注釈
システム定義のIOCTL_XXX コードの詳細については、Microsoft Windows SDKドキュメントの DeviceIoControl のリファレンス エントリの「解説」セクションを参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
IRQL | PASSIVE_LEVEL |