割り込みサービス ルーチンの概要
割り込みを受信する物理デバイスのドライバーは、割り込みを処理するために 1 つ以上の割り込みサービス ルーチン (ISR) を登録します。 システムは、その割り込みを受信するたびに ISR を呼び出します。
PCI 2.2 より前のポートとバスのデバイスでは、ライン ベースの割り込みが生成 されます。 デバイスは、割り込みラインと呼ばれる専用ピンで電気信号を送信することによって、割り込みを生成します。 Windows Vista より前のバージョンの Microsoft Windows では、ライン ベースの割り込みのみがサポートされています。
PCI 2.2 以降では、PCI デバイスはメッセージ シグナル割り込みを生成できます。 デバイスは、特定のアドレスにデータ値を書き込むことで、メッセージ シグナル割り込みを生成します。 Windows Vista 以降のオペレーティング システムでは、ライン ベースの割り込みとメッセージ シグナル割り込みの両方がサポートされています。
システムでは、次の 2 種類の ISR がサポートされています。
ドライバーは、ライン ベースまたはメッセージ シグナル割り込みを処理する InterruptService ルーチンを登録できます。 (これは、Windows Vista より前のシステムで使用できる唯一の種類です)。システムは、ドライバーが指定したコンテキスト値を渡します。
ドライバーは、メッセージ シグナル割り込みを処理する InterruptMessageService ルーチンを登録できます。 システムは、ドライバーが指定したコンテキスト値と割り込みメッセージのメッセージ ID の両方を渡します。
デバイスの割り込みを処理するために InterruptService ルーチンまたは InterruptMessageService ルーチンを登録する方法の詳細については、「メッセージ シグナル割り込みの概要」を参照してください。