次の方法で共有


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_XXX、どのデバイス I/O 操作を実行するかを示すコードです。このパラメーターの値は、InputBufferOutputBufferの形式と必要な長さを決定し、次のパラメーター ペア (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 リファレンス エントリの「解説」セクションを参照してください。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
IRQL PASSIVE_LEVEL

関連項目

FltFsControlFile