以視訊埠為基礎的擷取裝置必須提供連接到視訊埠管理員的視訊埠接腳。 視訊埠接腳可讓基於硬體的傳輸顯示預覽串流,而不需要 CPU 或周邊元件互連(PCI)匯流排額外負擔。 個別引腳支援擷取能力 (例如,當擷取的視訊必須寫入磁碟時) 。 在擷取過程中,擷取緩衝區會提供給顯示驅動程式,透過匯流排總線主控功能來填滿緩衝區。 擷取迷你驅動程式與顯示驅動程式之間的互動,稍後會在本節和 Kernel-Mode 視訊傳輸中進一步詳細說明。
在執行 Microsoft Windows 98 SE 或 Windows 2000 的系統上,覆疊混音器篩選器 (更新版本作業系統中視訊埠管理員篩選器的一部分) 不支援次要監視器上的視訊埠連線。 在這種情況下,接點連接失敗。 執行 Windows Millennium Edition (Windows Me) 和 Windows XP 的系統支援次要監視器上的視訊埠連線。
如果裝置支援 VBI 擷取,通常會公開兩個額外的針腳:VPVBI 和 VBI。 視訊埠管理篩選器會使用 VPVBI 針腳來分配視訊埠表面以進行 VBI 擷取。 VBI 針腳本身會提供原始 VBI 樣本。
下圖顯示 VPVBI 和 VBI 擷取的個別路徑。
特定於此類型篩選圖形的內容集是 KSPROPSETID_VPConfig 和 KSPROPSETID_VPVBIConfig 和 PROPSETID_ALLOCATOR_CONTROL。
使用視訊埠擴充功能(VPE)
注意: 下列段落僅適用於 Windows Vista 之前的作業系統版本。 如果顯示驅動程式使用新的 Windows Vista 驅動程式顯示模型 (LDDM) ,則會在 Windows Vista 中停用 VPE。
視訊擷取迷你驅動程式可以使用 DxApi 函式與視訊迷你埠驅動程式通訊,以允許擷取串流視訊透過擷取硬體與顯示硬體之間的視訊埠匯流排傳輸。 串流由 NTSC、PAL 或 SECAM 視訊的循序欄位組成,並且可以包含消隱(VBI)和時間碼(水平同步和垂直同步)資料。 視訊串流特性 (包括尺寸、色彩格式、頻率、縮放和裁切) 是透過 VPE DirectDraw 介面在使用者模式中設定的。 串流開始之後,會在核心模式中呼叫 DxApi 來擷取個別畫面。 若要支援顯示變更,例如解析度變更或切換至或從全螢幕命令提示符,視訊擷取迷你驅動程式也必須向視訊迷你埠驅動程式註冊並能夠回應這類顯示變更事件。
VPEs 和 DxApi 函數在 DirectX 5.0 中被引入至 DirectDraw DDI。 Windows 2000 和更新版本作業系統中的視訊迷你埠驅動程式支援 DxApi。 虛擬顯示迷你埠驅動程式 (miniVDD) 支援 Windows 98 和 Windows Me 作業系統中的 DxApi 。 若要使用 DxApi 啟用核心模式視訊傳輸,WDM 視訊擷取迷你驅動程式必須包含 ddkmapi.h (DirectDraw 核心模式 API) 標頭檔,並與 dxapi.lib 程式庫連結。 DxApi 程式庫會使用 dxapi.sys匯出的功能。 只有在載入 DirectDraw 時才能使用 DxApi.sys,因為 DxApi 是 DirectDraw DDI 的 VPE 的一部分。
DxApi 是由 DxApi.sys公開的單一核心模式 API。 視訊埠延伸模組是由 DDraw.dll公開的使用者模式 API。 視訊擷取迷你驅動程式必須對 DxApi 進行數個不同的呼叫,才能設定和設定視訊埠硬體,以正確串流。
DxApi 是封裝多個函式識別碼的單一函式。 迷你驅動程式會在第一個引數中將所需的函式識別碼傳遞至 DxApi。 DxApi 的其餘引數用於迷你驅動程式配置的緩衝區,這些緩衝區對應於函式識別碼及緩衝區長度的結構。 函式的行為,以及輸入和輸出緩衝區的大小和格式取決於指定的函式識別碼。 此行為記載於 DxApi 函式和識別碼中。
WDK 提供兩個範例驅動程式,示範如何實作 DxApi 功能。 ATIWDM 範例需要特定硬體才能運作。 TestCap 範例不需要硬體,且適用於所有平台。 您可以使用 GraphEdt 工具與任一範例互動。
視訊擷取迷你驅動程式必須呼叫 DxApi 才能執行的常見函式如下:
開啟核心模式 DirectDraw 的控制碼 (DxApi 函式識別碼設定為 DD_DXAPI_OPENDIRECTDRAW) 。 此作業必須在 IRQL = PASSIVE_LEVEL 執行。
取得硬體視訊埠的核心模式功能 (DxApi 函式識別碼設定為 DD_DXAPI_GETKERNELCAPS) 。
註冊回呼以處理 DirectDraw 事件,例如模式切換至全螢幕命令提示字元 (DxApi 函式識別碼設定為 DD_DXAPI_REGISTER_CALLBACK) 。
開啟控制碼以連接目標 DirectDraw 表面(DxApi 函式識別碼設定為 DD_DXAPI_OPENSURFACE)。
取消註冊回呼 (DxApi 函式識別碼設定為 DD_DXAPI_UNREGISTER_CALLBACK) 。
關閉表面和核心模式 DirectDraw 的控制碼 (DxApi 函式識別碼設定為 DD_DXAPI_CLOSEHANDLE)
視訊埠從屬裝置和電源管理
視訊埠子裝置,例如電視調諧器和顯示組合配接器,可以在使用迷你驅動程式時封鎖電源狀態轉換。 當迷你驅動程式主動使用 (針腳或篩選開啟) 時,就會發生電源狀態轉換封鎖。 如果迷你驅動程式已載入,但沒有使用接腳或濾鏡,則電源狀態會從 S0(完全通電)轉換至較低的電源狀態(例如 S1、S2、S3 和 S4)。 電源狀態轉換封鎖只會發生在視訊埠子裝置用戶端的 Stream 類別迷你驅動程式上。
符合此條件的裝置可獲得 WHQL 豁免,因此供應商仍然可以獲得徽標。