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 を実行する必要がある優先度の種類を指定します。

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

SynchronizeRoutine

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

Context

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

戻り値

操作が成功した場合、 VideoPortSynchronizeExecutionTRUE を返します。

注釈

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

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

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

要件

要件
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header video.h (Video.h を含む)
Library Videoprt.lib
[DLL] Videoprt.sys
IRQL <= DIRQL

こちらもご覧ください

HwVidInterrupt

HwVidSynchronizeExecutionCallback