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