VideoPortVerifyAccessRanges 函式 (video.h)
VideoPortVerifyAccessRanges 函式會檢查登錄,瞭解另一個驅動程式是否已宣告指定總線相對存取範圍的擁有權,以及VIDEO_PORT_CONFIG_INFO結構中指定的任何其他硬體資源。 如果沒有,此函式會宣告呼叫端的指定資源。
語法
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
PVOID HwDeviceExtension,
ULONG NumAccessRanges,
[in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);
參數
HwDeviceExtension
迷你埠驅動程式裝置延伸模組的指標。
NumAccessRanges
指定 AccessRanges 陣列中的項目數,或指定零。
[in, optional] AccessRanges
迷你埠驅動程式的存取範圍數位或 NULL 的指標。 此陣列中的每個 VIDEO_ACCESS_RANGE類型元素都會指定裝置記憶體、I/O 埠或註冊適配卡的總線相對範圍。
傳回值
VideoPortVerifyAccessRanges 會傳回下列其中一個值:
傳回碼 | Description |
---|---|
ERROR_INVALID_PARAMETER | 發生錯誤或發現衝突;也就是說,另一個驅動程式已經為其裝置宣告一或多個指定的硬體資源。 |
NO_ERROR | 指定的 AccessRanges 有效,且已宣告供呼叫端使用。 |
備註
每個視訊迷你埠驅動程式都必須呼叫 VideoPortVerifyAccessRanges,或使用 VideoPortGetAccessRanges 傳回的存取範圍,再嘗試在驅動程式 (和系統) 初始化程式期間存取視訊配接器。
VideoPortVerifyAccessRanges 只能由迷你埠驅動程式的 HwVidFindAdapter 函式呼叫。
每個視訊迷你埠驅動程式都必須定義其裝置的總線相對存取範圍,不論是在驅動程式頭檔或程式碼或堆疊上以靜態方式配置記憶體。 大部分的迷你埠驅動程式都會在堆疊上設定其視訊存取範圍,但針對視訊記憶體使用計算機標準位址範圍,例如 VGA 相容的 SVGA 迷你埠驅動程式。
HwVidFindAdapter 函式應該嘗試藉由呼叫 VideoPortGetAccessRanges 來取得總線相對存取範圍資訊,或透過呼叫 VideoPortGetDeviceData 或 VideoPortGetRegistryParameters 來檢查登錄。 如果 HwVidFindAdapter 無法取得這項資訊,迷你埠驅動程式應該會有一組總線相對預設值來存取範圍。
如果迷你埠驅動程式的存取範圍是外部可設定的,安裝程式會在登錄中設定適配卡的存取範圍。 這類迷你埠驅動程式的 HwVidFindAdapter 函式可以使用迷你埠驅動程式提供的 HwVidQueryNamedValueCallback 函式來呼叫 VideoPortGetRegistryParameters,以處理從登錄擷取的資訊。
除非 HwVidFindAdapter 先呼叫 VideoPortVerifyAccessRanges 或 VideoPortGetAccessRanges,否則個別函式會先傳回NO_ERROR,否則 HwVidFindAdapter 不得將任何存取範圍地址傳遞至 VideoPortGetDeviceBase。
如果VIDEO_PORT_CONFIG_INFO中的初始 AccessRanges 規格或值,例如插斷向量,可再次呼叫 VideoPortVerifyAccessRanges,使它傳回ERROR_XXX,指出另一個驅動程式已宣告資源 () 。
如果 VideoPortVerifyAccessRanges 傳回NO_ERROR,則相同配接器的後續呼叫會覆寫登錄中該適配卡資源的迷你埠驅動程式宣告。
請注意,迷你埠驅動程式無法與其視訊配接器通訊,但使用 VideoPortGetDeviceBase 傳回的對應位址搭配 VideoPortRead/WriteXxx 函式除外。
如果 HwVidFindAdapter 函式會宣告總線相對存取範圍,而且可能為適配卡的其他硬體資源,然後判斷它不支援適配卡,迷你埠驅動程式必須藉由呼叫 VideoPortVerifyAccessRanges 或 VideoPortGetAccessRanges 將它設定為零,並將 AccessRanges 設定為 NULL,來重新排列其登錄中硬體資源的宣告。
若要放棄迷你埠驅動程式不再使用的宣告存取範圍子集宣告,請執行下列動作:
- 修改配接器的 AccessRanges 規格,讓描述要釋放之範圍的每個元素仍會將 RangeStart 設定為宣告範圍的總線相對基底,但 RangeLength 重設為零。
- 使用這個修改過的 AccessRanges 陣列呼叫 VideoPortVerifyAccessRanges。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | video.h (包含 Video.h) |
程式庫 | Videoprt.lib |
Dll | Videoprt.sys |
IRQL | PASSIVE_LEVEL |