次の方法で共有


IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT 要求は、省略可能な割り込みサービス ルーチンと、省略可能な 遅延ポート チェック ルーチンを並列ポートに接続します。 この要求を使用できるのは、カーネル モード ドライバーだけです。

接続割り込み要求は、ドライバー固有の ISR のコンテキストでドライバーが使用できる情報を返します。 この情報には、割り込みオブジェクトへのポインターと、IRQL = DIRQL で並列ポートを割り当てて解放するコールバック ルーチンへのポインターが含まれます。

Microsoft では、クライアント提供の割り込みルーチンを使用することはお勧めしません。 割り込みを使用すると、システムが不安定になる可能性があります。 既定では、接続割り込み要求は無効になっています。 詳細については、「割り込みサービス ルーチンを ParallelPort に接続するを参照してください。
 

メジャー コード

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 メンバーは、並列ポートに対する内部デバイス制御要求によって返される一般的な状態値のいずれかに、または次のいずれかの値に設定されます。

STATUS_BUFFER_TOO_SMALL

次のうち少なくとも 1 つが当てはまります。

Parameters.DeviceIoControl.InputBufferLength メンバーの値が、PARALLEL_INTERRUPT_SERVICE_ROUTINE構造体のサイズ (バイト単位) 未満です。

Parameters.DeviceIoControl.OuputBufferLength メンバーの値が、PARALLEL_INTERRUPT_INFORMATION構造体のサイズ (バイト単位) 未満です。

必要条件

要件 価値
ヘッダー parallel.h (Parallel.h を含む)

関連項目

PARALLEL_INTERRUPT_SERVICE_ROUTINE

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION