VideoPortStartDma 関数 (video.h)
VideoPortStartDma 関数は、DMA 操作のためにシステムを準備します。 適切なリソースが使用可能になるとすぐに、VideoPortStartDma は、散布図/収集リストを作成し、システム リソースを初期化し、ビデオ ミニポート ドライバーが提供する HwVidExecuteDma ルーチンを呼び出して DMA 操作を実行します。
構文
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortStartDma(
[in] IN PVOID HwDeviceExtension,
[in] IN PVP_DMA_ADAPTER VpDmaAdapter,
[in] IN PVOID Mdl,
[in] IN ULONG Offset,
[in, out] IN OUT PULONG pLength,
[in] IN PEXECUTE_DMA ExecuteDmaRoutine,
[in] IN PVOID Context,
[in] IN BOOLEAN WriteToDevice
);
パラメーター
[in] HwDeviceExtension
ミニポート ドライバーのデバイス拡張機能へのポインター。
[in] VpDmaAdapter
バス マスター アダプターを表す VP_DMA_ADAPTER 構造体へのポインター。 この構造体は、VideoPortGetDmaAdapter 呼び出しから返されます。
[in] Mdl
バッファーを記述する MDL へのポインター。 このポインターは、ビデオ ポート ドライバーの VideoPortLockBuffer 関数 呼び出しから返されます。
[in] Offset
DMA 操作を開始するバッファー内のバイト オフセットを指定します。 Mdl パラメーターは、このバッファーを記述します。
[in, out] pLength
要求された転送サイズをバイト単位で指定し、転送される実際のサイズを受け取る変数へのポインター。 変数は、次のいずれかのイベントが発生すると更新されます。VideoPortStartDma 戻るか、HwVidExecuteDma 呼び出されます。 したがって、VideoPortStartDma が戻る前でも、HwVidExecuteDma 内からこの変数 読み取っても安全です。
[in] ExecuteDmaRoutine
HwVidExecuteDma コールバック ルーチン ミニポート ドライバーが提供するポインター。 VideoPortStartDma は、このルーチンを呼び出してハードウェア レジスタをプログラミングし、実際の DMA 操作を開始します。
[in] Context
ミニポート ドライバーの HwVidExecuteDma コールバック ルーチンに渡されるドライバーによって決定されたコンテキストへのポインター。 HwVidExecuteDma コールバック ルーチンはDISPATCH_LEVELで実行されるため、context が指 データは非ページ メモリ内に存在する必要があります。
[in] WriteToDevice
DMA 転送の方向を指定します。 TRUE の値は、バッファーからデバイスへの転送を表し、FALSE 値は、デバイスからバッファーへの転送を表します。
戻り値
VideoPortStartDma は、次のいずれかの状態コードを返します。
リターン コード | 形容 |
---|---|
NO_ERROR | 操作は正常に実行されました。 |
ERROR_NOT_ENOUGH_MEMORY | この操作に十分なシステム リソースがありません。 |
備考
DMA 転送操作を準備するには、VideoPortStartDma をします。
- ホスト プロセッサのキャッシュ内のメモリ領域をフラッシュします。
- 散布図/収集リストを作成します。
- ビデオ ミニポート ドライバーの HwVidExecuteDma コールバックを呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | video.h (Video.h を含む) |
ライブラリ | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |
関連項目
HwVidExecuteDma の
VideoPortGetDmaAdapter の