Поделиться через


функция обратного вызова 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

Драйверы miniport для видеоадаптеров типа x86 обычно указывают VpBusData, особенно для адаптеров на шинах EISA. Значения VpControllerData и VpMonitorData имеют значение только на платформах, совместимых с ARC. Значения VpCmosData и VpMachineData используются редко.

Identifier

Указатель на имя устройства, определенное встроенным ПО ARC. Этот параметр следует использовать только на платформах, совместимых с ARC. В противном случае этот указатель должен иметь значение NULL.

IdentiferLength

Задает размер в байтах строки буферизованного идентификатора. Значение должно быть равно нулю, если компьютер не совместим с ARC.

ConfigurationData

Указатель на данные конфигурации оборудования. Формат этих данных определяется указанным типом DeviceDataType и значением AdapterInterfaceType в VIDEO_PORT_CONFIG_INFO.

ConfigurationDataLength

Задает размер буфера ConfigurationData в байтах. Фактически это указывает, сколько сведений было собрано из реестра и сохранено в буфере ConfigurationData , выделенном VideoPortGetDeviceBase.

ComponentInformation

Зарезервировано для системного использования.

ComponentInformationLength

Зарезервировано для системного использования.

Возвращаемое значение

HwVidQueryDeviceCallback возвращает состояние операции.

Комментарии

HwVidQueryDeviceCallback передается в вызове VideoPortGetDeviceData из функции HwVidFindAdapter драйвера мини-порта. VideoPortGetDeviceData вызывает HwVidQueryDeviceCallback после сбора доступных сведений о конфигурации в узле \Registry\Machine\Hardware\Description реестра.

HwVidQueryDeviceCallback проверяет данные Конфигурации, собранные из реестра VideoPortGetDeviceData. Эта информация используется для настройки адаптера и, возможно, для заполнения отсутствующих сведений о конфигурации в структуре VIDEO_PORT_CONFIG_INFO .

HwVidQueryDeviceCallback не может напрямую передавать значения диапазона доступа , найденные в ConfigurationData , в videoPortReadXxx или VideoPortWriteXxx ; Такие адреса сначала должны быть сопоставлены путем вызова VideoPortGetDeviceBase.

Если буфер ConfigurationData не имеет сведений о диапазоне доступа и функция HwVidFindAdapter драйвера мини-порта еще не вызывала VideoPortGetBusData (или VideoPortGetAccessRanges), функция HwVidQueryDeviceCallback может вызывать VideoPortGetBusData. Сведения о диапазоне доступа, возвращаемые VideoPortGetBusData , также должны передаваться в VideoPortVerifyAccessRanges.

Если VideoPortVerifyAccessRanges возвращает NO_ERROR, драйвер мини-порта может вызвать VideoPortGetDeviceBase , чтобы получить сопоставленные логические адреса, которые он может использовать для взаимодействия с адаптером путем вызова функций VideoPortReadXxx и (или ) VideoPortWriteXxx .

Если он не может получить значения диапазонов доступа относительно шины путем вызова VideoPortGetDeviceData, VideoPortGetBusData или VideoPortGetAccessRanges, драйвер мини-порта может использовать набор значений диапазона доступа по умолчанию, предоставленных драйвером, для поиска своего адаптера. В этих случаях драйвер мини-порта должен вызывать VideoPortVerifyAccessRanges с предоставленными драйвером мини-порта диапазонами доступа, а затем вызывать VideoPortGetDeviceBase , только если VideoPortVerifyAccessRanges вернул NO_ERROR. Если вызов VideoPortVerifyAccessRanges завершается неудачно, драйвером другого устройства уже используется заданный диапазон относительно шины.

HwVidQueryDeviceCallback следует сделать страничной.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть video.h (включить Video.h)

См. также раздел

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges