次の方法で共有


PVIDEO_HW_INTERRUPT コールバック関数 (video.h)

HwVidInterrupt は、関連付けられているビデオ アダプターによって生成された割り込みを検出して無視します。

構文

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

パラメーター

HwDeviceExtension

ミニポート ドライバーのアダプターごとの記憶域へのポインター。 詳細については、「 デバイス拡張機能」を参照してください。

戻り値

HwVidInterrupt は、関連付けられているハードウェアが割り込みを生成しなかったと判断した場合、FALSE を返します。 それ以外の場合は、 TRUE を返す前に、アダプターの割り込みを無視する必要があります。

注釈

ミニポート ドライバーは、ビデオ アダプターが割り込みを生成する場合 は、HwVidInterrupt を実装する必要があります。

まず、 HwVidInterrupt は、アダプターが実際に割り込みを引き起こしたかどうかを判断する必要があります。 そうでない場合は、割り込みの原因となったデバイスの ISR が速やかに呼び出されるように、この関数はすぐに FALSE を 返す必要があります。

それ以外の場合、 HwVidInterrupt は通常、割り込みの原因となった I/O 操作の完了を担当し、次の操作を行う必要があります。

  • アダプターの割り込みを無視します (必須)。
  • 割り込みの原因となった要求された操作を完了します。
  • 可能な限り迅速に制御を返します (必須)。
ミニポート ドライバーに HwVidInterrupt 関数がある場合、 HwVidInterrupt によってアクセスできるレジスタまたはメモリの場所は、対応するディスプレイ ドライバーに表示できません。 ディスプレイ ドライバーが関連するレジスタまたはメモリの場所の 1 つを変更しているときに割り込みが発生する可能性があり、同期を確保する方法はありません。 したがって、割り込み駆動操作の重要なレジスタまたはメモリの場所へのアクセスを必要とするすべての関数は、ミニポート ドライバー内にある必要があります。

他のミニポート ドライバー関数が HwDeviceExtension の一部などのメモリを HwVidInterrupt と共有する場合は、 VideoPortSynchronizeExecution を呼び出して共有領域へのアクセスを同期する必要があります。

HwVidInterrupt は、次のシステム提供の VideoPortXxx ルーチンのみを呼び出すことができます ( 「ビデオ ポート ドライバーによってエクスポートされる関数」を参照してください)。

HwVidInterrupt は、前の一覧にない VideoPortXxx 関数を呼び出してはなりません。 この要件に違反すると、システム エラー ("ブルー スクリーン") が発生します。

HwVidInterrupt 関数をページング可能にすることも、呼び出す関数を指定することもできません。

要件

要件
対象プラットフォーム デスクトップ
Header video.h (Video.h を含む)

こちらもご覧ください

ビデオ ポート ドライバーによってエクスポートされる関数

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory