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 的值 FALSE 表示從裝置到緩衝區的傳輸。
傳回值
VideoPortStartDma 會傳回下列其中一個狀態代碼:
傳回碼 | 描述 |
---|---|
NO_ERROR | 作業已成功執行。 |
ERROR_NOT_ENOUGH_MEMORY | 此作業沒有足夠的系統資源。 |
言論
若要準備 DMA 傳輸作業,VideoPortStartDma:
- 排清主機處理器快取中的記憶體區域。
- 建置散佈/收集清單。
- 呼叫視訊迷你埠驅動程式的 HwVidExecuteDma 回呼。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows XP 和更新版本的 Windows作系統。 |
目標平臺 | 桌面 |
標頭 | video.h (include Video.h) |
連結庫 | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |