次の方法で共有


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 コード。このパラメーターの値は 、InputBufferOutputBuffer の形式と必要な長さを決定し、次のパラメーター ペア (InputBufferInputBufferLengthまたは OutputBufferOutputBufferLength) のどれが必要かを決定します。

[in, optional] InputBuffer

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

[in] InputBufferLength

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

[out] OutputBuffer

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

[in] OutputBufferLength

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

[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

こちらもご覧ください

FltFsControlFile