IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT要求は、省略可能な割り込みサービス ルーチンとオプションの遅延ポート チェック ルーチンを並列ポートに接続します。 この要求を使用できるのは、カーネル モード ドライバーだけです。
接続割り込み要求は、ドライバー固有の ISR のコンテキストでドライバーが使用できる情報を返します。 この情報には、割り込みオブジェクトへのポインターと、IRQL = DIRQL で並列ポートを割り当てて解放するコールバック ルーチンへのポインターが含まれます。
メジャー コード
IRP_MJ_INTERNAL_DEVICE_CONTROL
[入力バッファー]
AssociatedIrp.SystemBuffer メンバーは、クライアントが割り込みサービス情報の入力に割り当てるPARALLEL_INTERRUPT_SERVICE_ROUTINE構造体を指します。 並列ポート用のシステム提供の関数ドライバーは、同じメモリ バッファーを使用しますが、それを別のデータ型にキャストして情報を出力します。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength メンバーは、PARALLEL_INTERRUPT_SERVICE_ROUTINE構造体のサイズ (バイト単位) に設定されます。
出力バッファー
AssociatedIrp.SystemBuffer メンバーは、並列ポート関数ドライバーが並列割り込み情報を出力するために使用するPARALLEL_INTERRUPT_INFORMATION構造体を指します。
出力バッファーの長さ
Parameters.DeviceIoControl.OutputBufferLength メンバーは、PARALLEL_INTERRUPT_INFORMATION構造体のサイズ (バイト単位) に設定されます。
ステータス ブロック
要求が成功した場合、 Information メンバーは、 PARALLEL_INTERRUPT_INFORMATION 構造体のサイズ (バイト単位) に設定されます。 それ以外の場合、 Information メンバーは 0 に設定されます。
Status メンバーは、並列ポートに対する内部デバイス制御要求によって返される汎用状態値の 1 つ、または次のいずれかの値に設定されます。
STATUS_BUFFER_TOO_SMALL
以下のうち少なくとも 1 つが true です。
Parameters.DeviceIoControl.InputBufferLength メンバーの値が、PARALLEL_INTERRUPT_SERVICE_ROUTINE構造体のサイズ (バイト単位) 未満です。
Parameters.DeviceIoControl.OuputBufferLength メンバーの値が、PARALLEL_INTERRUPT_INFORMATION構造体のサイズ (バイト単位) 未満です。
要件
要件 | 値 |
---|---|
Header | parallel.h (Parallel.h を含む) |
こちらもご覧ください
PARALLEL_INTERRUPT_SERVICE_ROUTINE