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 總線上的適配卡。 VpControllerDataVpMonitorData 值只有在符合 ARC 規範的平臺上才有意義。 很少使用 VpCmosDataVpMachineData 值。

Identifier

由 ARC 韌體決定之裝置名稱的指標。 此參數應該只在符合ARC規範的平臺上使用。 否則,這個指標應該是 NULL

IdentiferLength

指定緩衝 標識符 字串的位元組大小 如果機器不符合 ARC 規範,此值應該為零。

ConfigurationData

硬體組態數據的指標。 此數據的格式取決於指定的 DeviceDataType ,以及 VIDEO_PORT_CONFIG_INFO 中的 AdapterInterfaceType 值。

ConfigurationDataLength

指定 ConfigurationData 緩衝區的位元元組大小。 實際上,這表示從登錄收集多少資訊,並儲存在 VideoPortGetDeviceBase 配置的 ConfigurationData 緩衝區中。

ComponentInformation

保留供系統使用。

ComponentInformationLength

保留供系統使用。

傳回值

HwVidQueryDeviceCallback 會傳回作業的狀態。

備註

HwVidQueryDeviceCallback 會從迷你埠驅動程式的 HwVidFindAdapter 函式,傳入 VideoPortGetDeviceData 的呼叫。 VideoPortGetDeviceData 會在登錄的 \Registry\Machine\Hardware\Description 節點下收集可用的組態信息之後,呼叫 HwVidQueryDeviceCallback

HwVidQueryDeviceCallback 會檢查由 VideoPortGetDeviceData 從登錄收集的 ConfigurationData。 它會使用這項資訊來設定其配接器,而且可能的話,在 VIDEO_PORT_CONFIG_INFO 結構中填入遺漏的組態資訊。

HwVidQueryDeviceCallback 無法直接將 ConfigurationData 中找到的存取範圍值傳遞至任何 VideoPortReadXxxVideoPortWriteXxx ;這類地址必須先呼叫 VideoPortGetDeviceBase 來對應。

如果 ConfigurationData 緩衝區沒有存取範圍資訊,而且迷你埠驅動程式的 HwVidFindAdapter 函式尚未呼叫 VideoPortGetBusData (或 VideoPortGetAccessRanges) ,則其 HwVidQueryDeviceCallback 函式可以呼叫 VideoPortGetBusDataVideoPortGetBusData 傳回的存取範圍資訊也必須傳遞至 VideoPortVerifyAccessRanges

如果 VideoPortVerifyAccessRanges 傳回NO_ERROR,迷你埠驅動程式可以呼叫 VideoPortGetDeviceBase 來取得可透過呼叫 VideoPortReadXxx 和/或 VideoPortWriteXxx 函式來與配接器通訊的對應邏輯位址。

如果它無法藉由呼叫 VideoPortGetDeviceDataVideoPortGetBusDataVideoPortGetAccessRanges 取得總線相對存取範圍值,迷你埠驅動程式可以使用一組驅動程式提供的預設存取範圍值來尋找其配接器。 在這些情況下,迷你埠驅動程序必須使用迷你埠驅動程式提供的存取範圍呼叫 VideoPortVerifyAccessRanges,然後只有在 VideoPortVerifyAccessRanges 傳回NO_ERROR時,才呼叫 VideoPortGetDeviceBase。 如果對 VideoPortVerifyAccessRanges 的呼叫不成功,則其他裝置的驅動程式已經使用指定的總線相對範圍。

HwVidQueryDeviceCallback 應該設為可分頁。

規格需求

需求
目標平台 桌面
標頭 video.h (包含 Video.h)

另請參閱

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges