次の方法で共有


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 メンバーは、並列ポートに対する内部デバイス制御要求によって返される汎用状態値の 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

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION