次の方法で共有


VideoPortSynchronizeExecution 関数 (video.h)

VideoPortSynchronizeExecution 関数は、ミニポート ドライバーが提供する HwVidSynchronizeExecutionCallback 関数の実行を、ミニポート ドライバーの HwVidInterrupt 関数 (存在する場合) と同期します。 それ以外の場合は、HwVidSynchronizeExecutionCallback 高い優先度で実行されます。

構文

VIDEOPORT_DEPRECATED BOOLEAN VIDEOPORT_API VideoPortSynchronizeExecution(
  PVOID                         HwDeviceExtension,
  VIDEO_SYNCHRONIZE_PRIORITY    Priority,
  PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
  PVOID                         Context
);

パラメーター

HwDeviceExtension

ミニポート ドライバーのデバイス拡張機能へのポインター。

Priority

指定した SynchronizeRoutine を実行する必要がある優先順位の種類を、次のいずれかの方法で指定します。

  • Priority が VpLowPriority に設定されている場合、現在のスレッドは最も高い非中断マスク優先度に発生します。 したがって、現在のスレッドは、デバイスが中断した場合にのみ ISR によって割り込むことができます。
  • Priority が VpMediumPriority に設定されていて、ミニポート ドライバーにビデオ アダプターに関連付けられた ISR がある場合、指定された SynchronizeRoutine への呼び出しは、ミニポート ドライバーの HwVidInterrupt 関数と同期されます。 それ以外の場合は、VpLowPriority レベルで同期が行われます。
  • VpHighPriority は、VpMediumPriority と同じ効果があります。

SynchronizeRoutine

ミニポート ドライバーの HwVidSynchronizeExecutionCallback 関数へのポインター。

Context

ミニポート ドライバーの HwVidSynchronizeExecutionCallback 関数に渡される呼び出し元が指定したコンテキストへのポインター。 このポインターは NULL できます。

戻り値

操作が成功した場合、VideoPortSynchronizeExecution TRUE 返します。

備考

ミニポート ドライバーは、次のいずれかの条件を保持しない限り、このルーチンを呼び出すことはほとんどありません。

  • ミニポート ドライバーの HwVidInterrupt 関数は、他のミニポート ドライバー関数とメモリを共有します。 マルチプロセッサ セーフな方法で共有メモリにアクセスするには、このようなミニポート ドライバー関数は、HwVidSynchronizeExecutionCallbackを使用して VideoPortSynchronizeExecution 呼び出す必要があります。 ビデオ ポート ドライバーは、HwVidInterrupt 関数が同じメモリに同時にアクセスできないようにするため、このミニポート ドライバー関数は共有メモリに安全にアクセスできます。
  • アダプターは、コンテキスト切り替えの影響を受けることなく、一連のコマンドでプログラムする必要があります。 たとえば、I/O 命令のシーケンスをバッファー処理し、シーケンスを検証したミニポート ドライバーの SvgaHwIoPortXxx 関数は、HwVidSynchronizeExecutionCallbackを使用して VideoPortSynchronizeExecution 呼び出す場合があります。 このミニポート ドライバー関数は、バッファーと検証された I/O ストリームをアダプターに非常に迅速に転送できます。
呼び出し元は、HwVidSynchronizeExecutionCallback が実行する必要がある作業の最も実用的な 優先度 指定する必要があります。 ハードウェア優先度が高い (VpMediumPriorityまたは VpHighPriority ) CallbackRoutine は、できるだけ早く制御を返す必要があります。 HwVidSynchronizeExecutionCallback 関数 優先度の高いドライバーは、その HwVidSynchronizeExecutionCallback と HwVidInterrupt 関数の両方の 1 つを除き、他のすべてのドライバー関数で可能な限 り多くの作業を行うように設計する必要があります。

VideoPortSynchronizeExecution の呼び出し元が IRQL で実行されている必要があります

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー video.h (Video.h を含む)
ライブラリ Videoprt.lib
DLL Videoprt.sys
IRQL <= DIRQL

関連項目

HwVidInterrupt

HwVidSynchronizeExecutionCallback