PMINIPORT_QUERY_DEVICE_ROUTINE回呼函式 (video.h)
HwVidQueryDeviceCallback 會使用指定的組態數據來設定其配接器,而且可能的話,在 VIDEO_PORT_CONFIG_INFO 結構中填入遺漏的組態資訊。
語法
PMINIPORT_QUERY_DEVICE_ROUTINE PminiportQueryDeviceRoutine;
VP_STATUS PminiportQueryDeviceRoutine(
PVOID HwDeviceExtension,
PVOID Context,
VIDEO_DEVICE_DATA_TYPE DeviceDataType,
PVOID Identifier,
ULONG IdentiferLength,
PVOID ConfigurationData,
ULONG ConfigurationDataLength,
PVOID ComponentInformation,
ULONG ComponentInformationLength
)
{...}
參數
HwDeviceExtension
迷你埠驅動程式每個適配卡儲存區域的指標。 如需詳細資訊,請參閱 裝置延伸模組。
Context
HwVidFindAdapter所設定之內容值的指標。 通常,它會指向VIDEO_PORT_CONFIG_INFO緩衝區或該緩衝區中的位移。
DeviceDataType
指定要求的組態資訊類型,這是下列其中一項:
VpBusData
VpCmosData
VpControllerData
VpMachineData
VpMonitorData
x86 類型的視訊配接器的迷你埠驅動程式通常會指定 VpBusData,特別是 EISA 總線上的適配卡。 VpControllerData 和 VpMonitorData 值在符合 ARC 規範的平臺上才具有意義。 VpCmosData 和 VpMachineData 值很少使用。
Identifier
由 ARC 韌體決定之裝置名稱的指標。 此參數應該只在符合ARC規範的平臺上使用。 否則,這個指標應該 NULL。
IdentiferLength
指定緩衝 識別子的大小, 字串。 如果計算機不符合ARC標準,則此值應為零。
ConfigurationData
硬體組態數據的指標。 此數據的格式是由指定的 DeviceDataType 和 AdapterInterfaceType VIDEO_PORT_CONFIG_INFO 值所決定。
ConfigurationDataLength
指定 ConfigurationData 緩衝區的位元元組大小。 實際上,這會指出從登錄收集多少資訊,並儲存在 VideoPortGetDeviceBase所配置的 ConfigurationData 緩衝區中。
ComponentInformation
保留供系統使用。
ComponentInformationLength
保留供系統使用。
傳回值
HwVidQueryDeviceCallback 會傳回作業的狀態。
言論
HwVidQueryDeviceCallback 會從迷你埠驅動程式的 HwVidFindAdapter 函式,將呼叫 VideoPortGetDeviceData。 VideoPortGetDeviceData 呼叫 HwVidQueryDeviceCallback 之後,在登錄的 \Registry\Machine\Hardware\Description 節點下收集可用的組態資訊。
HwVidQueryDeviceCallback 會檢查 VideoPortGetDeviceData從登錄收集的 ConfigurationData。 它會使用這項資訊來設定其配接器,而且可能的話,在 VIDEO_PORT_CONFIG_INFO 結構中填入遺漏的組態資訊。
HwVidQueryDeviceCallback 無法直接將 ConfigurationData 中找到的存取範圍值傳遞至任何 VideoPortReadXxx 或 VideoPortWriteXxx:這類地址必須先呼叫 VideoPortGetDeviceBase來對應。
如果 ConfigurationData 緩衝區沒有存取範圍資訊,而迷你埠驅動程式的 HwVidFindAdapter 函式尚未呼叫 VideoPortGetBusDataVideoPortGetAccessRanges),其 HwVidQueryDeviceCallback 函式可以呼叫 VideoPortGetBusData。 VideoPortGetBusData 所傳回的存取範圍資訊 也必須傳遞至 VideoPortVerifyAccessRanges。
如果 VideoPortVerifyAccessRanges 傳回NO_ERROR,迷你埠驅動程式可以呼叫 VideoPortGetDeviceBase,藉由呼叫 VideoPortReadXxx 和/或 VideoPortWriteXxx 函式,來取得它可用來與適配卡通訊的對應邏輯位址。
如果無法藉由呼叫 VideoPortGetDeviceData、VideoPortGetBusData或 VideoPortGetAccessRanges取得總線相對存取範圍值,迷你埠驅動程式可以使用一組驅動程式提供的預設存取範圍值來尋找其配接器。 在這些情況下,迷你埠驅動程序必須呼叫 VideoPortVerifyAccessRanges 與迷你埠驅動程式提供的存取範圍,然後只有在 VideoPortVerifyAccessRanges 傳回NO_ERROR時,才呼叫 VideoPortGetDeviceBase。 如果呼叫 VideoPortVerifyAccessRanges 失敗,指定的總線相對範圍已由另一個裝置的驅動程式使用。
HwVidQueryDeviceCallback 應設為可分頁。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | video.h (include Video.h) |