視訊埠型擷取
擷取以視訊埠為基礎的裝置必須提供連線到視訊埠管理員的視訊埠釘選。 視訊埠針腳可讓硬體型傳輸顯示預覽串流,而不需要 CPU 或周邊元件互連(PCI) 總線額外負荷。 個別的針腳提供擷取功能(例如,當擷取的視訊必須寫入磁碟時)。 在擷取程式期間,擷取緩衝區會提供給顯示驅動程式,該驅動程式會透過總線主控填滿緩衝區。 擷取迷你驅動程式與顯示驅動程式之間的互動會在本節 稍後和內核模式視訊傳輸中進一步詳細說明。
在執行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 會在核心模式中呼叫,以擷取個別畫面格。 若要支持顯示變更,例如解析度變更或切換至全螢幕命令提示字元,視訊擷取迷你驅動程式也必須向視訊迷你埠驅動程序註冊,以便回應這類顯示變更事件。
VPE 和 DxApi 函式已引進 DirectDraw DDI 與 DirectX 5.0。 Windows 2000 和更新版本操作系統中的視訊迷你埠驅動程序支援 DxApi 。 虛擬顯示器迷你埠驅動程式 (miniVDD) 支援 Windows 98 和 Windows Me 操作系統中的 DxApi 。 若要使用 DxApi 啟用內核模式視訊傳輸,WDM 視訊擷取迷你驅動程式必須包含 ddkmapi.h (DirectDraw 內核模式 API) 頭檔,並與 dxapi.lib 連結庫連結。 DxApi 連結庫會使用dxapi.sys導出的功能。 DxApi.sys只有在載入 DirectDraw 時才可使用,因為 DxApi 是 DirectDraw DDI 的 VPE 的一部分。
DxApi是DxApi.sys公開的單一內核模式 API。 視訊埠延伸模組是使用者模式 API,由 DDraw.dll 公開。 視訊擷取迷你驅動程序必須對 DxApi 進行數個不同的呼叫,才能設定視訊埠硬體以正確串流。
DxApi 是封裝多個函式標識碼的單一函式。 Minidrivers 會將第一個自變數中所需的函式標識碼傳遞至 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)。 Power state transition blocking only with Stream class minidrivers that are clients of video port child devices.
WHQL 豁免適用於符合此準則的裝置,因此廠商仍然可以取得標誌。