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 ストリームをアダプターに非常に迅速に転送できます。
VideoPortSynchronizeExecution の呼び出し元が IRQL で実行されている必要があります
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | video.h (Video.h を含む) |
Library | Videoprt.lib |
[DLL] | Videoprt.sys |
IRQL | <= DIRQL |