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 會傳回下列其中一個狀態代碼:
傳回碼 | Description |
---|---|
NO_ERROR | 作業已成功執行。 |
ERROR_NOT_ENOUGH_MEMORY | 此作業沒有足夠的系統資源。 |
備註
若要準備 DMA 傳輸作業, VideoPortStartDma:
- 排清主機處理器快取中的記憶體區域。
- 建置散佈/收集清單。
- 呼叫視訊迷你埠驅動程式的 HwVidExecuteDma 回呼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows XP 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | video.h (包含 Video.h) |
程式庫 | Videoprt.lib |
Dll | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |