NtDeviceIoControlFile 関数 (winternl.h)

非推奨になりました。 指定されたバッファーの記述子をビルドし、型指定されていないデータをファイル ハンドルに関連付けられているデバイス ドライバーに渡します。 NtDeviceIoControlFileDeviceIoControl に置き換えられます。

構文

__kernel_entry NTSTATUS NtDeviceIoControlFile(
  [in]  HANDLE           FileHandle,
  [in]  HANDLE           Event,
  [in]  PIO_APC_ROUTINE  ApcRoutine,
  [in]  PVOID            ApcContext,
  [out] PIO_STATUS_BLOCK IoStatusBlock,
  [in]  ULONG            IoControlCode,
  [in]  PVOID            InputBuffer,
  [in]  ULONG            InputBufferLength,
  [out] PVOID            OutputBuffer,
  [in]  ULONG            OutputBufferLength
);

パラメーター

[in] FileHandle

コントロール情報を指定する必要があるファイルまたはデバイスへのファイル ハンドルを開きます。

[in] Event

操作が完了したときに状態に設定されるイベントへの signaled ハンドル。 このパラメーターは、NULL でもかまいません。

[in] ApcRoutine

操作が完了した後に呼び出されるプロシージャ。 このパラメーターは、NULL でもかまいません。 非同期プロシージャ 呼び出し (APC) の詳細については、「 非同期プロシージャ 呼び出し」を参照してください。

[in] ApcContext

操作が完了したときに ApcRoutine に渡すポインター。 ApcRoutine が指定されている場合は、このパラメーターが必要です。

[out] IoStatusBlock

最後の完了状態と操作に関する情報を受け取る変数。 情報を返すサービス呼び出しは、この変数の Information フィールドの出力バッファーに書き込まれるデータの長さを返します。

[in] IoControlCode

実行するデバイス I/O 制御関数を示すコード。

[in] InputBuffer

ターゲット デバイスに提供される情報を含むバッファーへのポインター。 このパラメーターは、NULL でもかまいません。 この情報はデバイスに依存します。

[in] InputBufferLength

InputBuffer の長さ (バイト単位)。 バッファーが指定されていない場合、この値は無視されます。

[out] OutputBuffer

ターゲット デバイスからデバイスに依存する戻り情報を受信するバッファーへのポインター。 このパラメーターは、NULL でもかまいません。

[in] OutputBufferLength

OutputBuffer の長さ (バイト単位)。 バッファーが指定されていない場合、この値は無視されます。

戻り値

NTSTATUS では、さまざまな NTSTATUS 値が定義されています。H。Windows DDK と共に配布されます。

リターン コード 説明
STATUS_SUCCESS
制御操作が I/O システムに適切にキューに入れられます。 操作が完了したら、I/O 状態ブロックの [状態] フィールドを調べることで状態を確認できます。

注釈

NtDeviceIoControlFile サービスは、アプリケーションがシステム内のさまざまなデバイスに対して持つコントロールを拡張するデバイス依存インターフェイスです。 この API は、システムへの入力データと出力データの一貫性のあるビューを提供しながら、アプリケーションとドライバーに通信インターフェイスを指定するデバイスに依存する方法を提供します。

呼び出し元が必要とするファイルへのアクセスの種類は、実行されている実際の操作によって異なります。

サービスが完了すると、 イベント (指定されている場合) が状態に signaled 設定されます。 Event パラメーターが指定されていない場合、FileHandle で指定されたファイル オブジェクトは状態にsignaled設定されます。 ApcRoutine が指定されている場合は、引数として ApcContextIoStatusBlock を使用して呼び出されます。

この関数にはインポート ライブラリがないため、 GetProcAddress を使用する必要があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winternl.h
Library ntdll.lib
[DLL] ntdll.dll

こちらもご覧ください

非同期プロシージャ呼び出し