NtDeviceIoControlFile 関数 (winternl.h)
非推奨になりました。 指定されたバッファーの記述子をビルドし、型指定されていないデータをファイル ハンドルに関連付けられているデバイス ドライバーに渡します。 NtDeviceIoControlFile は DeviceIoControl に置き換えられます。
構文
__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 と共に配布されます。
リターン コード | 説明 |
---|---|
|
制御操作が I/O システムに適切にキューに入れられます。 操作が完了したら、I/O 状態ブロックの [状態] フィールドを調べることで状態を確認できます。 |
注釈
NtDeviceIoControlFile サービスは、アプリケーションがシステム内のさまざまなデバイスに対して持つコントロールを拡張するデバイス依存インターフェイスです。 この API は、システムへの入力データと出力データの一貫性のあるビューを提供しながら、アプリケーションとドライバーに通信インターフェイスを指定するデバイスに依存する方法を提供します。
呼び出し元が必要とするファイルへのアクセスの種類は、実行されている実際の操作によって異なります。
サービスが完了すると、 イベント (指定されている場合) が状態に signaled
設定されます。 Event パラメーターが指定されていない場合、FileHandle で指定されたファイル オブジェクトは状態にsignaled
設定されます。 ApcRoutine が指定されている場合は、引数として ApcContext と IoStatusBlock を使用して呼び出されます。
この関数にはインポート ライブラリがないため、 GetProcAddress を使用する必要があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winternl.h |
Library | ntdll.lib |
[DLL] | ntdll.dll |