次の方法で共有


DXGKDDI_INTERRUPT_ROUTINE コールバック関数 (dispmprt.h)

DxgkDdiInterruptRoutine 関数は、ディスプレイ アダプターによって生成された割り込みを処理します。

構文

DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;

BOOLEAN DxgkddiInterruptRoutine(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG MessageNumber
)
{...}

パラメーター

[in] MiniportDeviceContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前に DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

[in] MessageNumber

割り込みがメッセージシグナル化された場合の、メッセージシグナル割り込み (MSI) テーブル内の 0 から始まるインデックス。 行ベースの割り込みの場合、このパラメーターは 0 です。

戻り値

DxgkDdiInterruptRoutine、MiniportDeviceContext によって表されるアダプターが割り込みを生成しなかったと判断した場合、FALSE を返します。 それ以外の場合は、TRUE を返す前に、アダプターの割り込みを無視する必要があります。

注釈

割り込みが行ベース (MessageNumber = 0) の場合、 DxgkDdiInterruptRoutine、MiniportDeviceContext によって表されるアダプターが割り込みを生成したかどうかを判断し、生成されていない場合は FALSE を直ちに返す必要があります。

MiniportDeviceContext によって表されるアダプターが割り込みを生成した場合、DxgkDdiInterruptRoutine は次の手順を実行する必要があります。

  • アダプターの割り込みを無視します。
  • 割り込みの原因となった要求された操作を完了するか、後で操作を完了する DPC をキューに入れます。
  • 可能な限り迅速に TRUE を返します。

DxgkDdiInterruptRoutine とメモリを共有するその他のディスプレイ ミニポート ドライバー関数 (たとえば、MiniportDeviceContext によって表される状態の一部) は、共有メモリへのアクセスを同期するために DxgkCbSynchronizeExecution を呼び出す必要があります。

DxgkDdiInterruptRoutine 関数は DxgkCbQueueDpc および DxgkCbNotifyInterrupt を呼び出すことができますが、他の DxgkCbXxx 関数を呼び出すことはできません。 関数呼び出しの適切なシーケンスの詳細については、「 コマンド バッファーの送信」を参照してください。

DxgkDdiInterruptRoutine は管理者特権の IRQL で実行されるため、(および呼び出すすべての関数) はページング不可である必要があります。 また、 DxgkDdiInterruptRoutine (および呼び出すすべての関数) は、ページング可能なメモリへのアクセスを試みてはなりません。

要件

要件
サポートされている最小のクライアント Windows Vista
対象プラットフォーム デスクトップ
Header dispmprt.h
IRQL 「解説」を参照してください。

こちらもご覧ください

DxgkCbNotifyInterrupt

DxgkCbQueueDpc

DxgkCbSynchronizeExecution