次の方法で共有


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

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

構文

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

パラメーター

HwDeviceExtension

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

戻り値

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

備考

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

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

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

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

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

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー video.h (Video.h を含む)

関連項目

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

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory