Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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
Указатель на массив диапазонов доступа драйвера miniport или NULL. Каждый элемент VIDEO_ACCESS_RANGE-type в этом массиве задает относительный диапазон памяти устройства, портов ввода-вывода или регистр адресов для адаптера.
Возвращаемое значение
VideoPortVerifyAccessRanges возвращает одно из следующих значений:
Возвращаемый код | Описание |
---|---|
ERROR_INVALID_PARAMETER | Произошла ошибка или обнаружен конфликт; То есть другой драйвер уже утверждал один или несколько указанных аппаратных ресурсов для своего устройства. |
NO_ERROR | Указанные AccessRanges допустимы и были заявлены для использования вызывающим абонентом. |
Замечания
Каждый драйвер видеопорта должен вызывать VideoPortVerifyAccessRangesили использовать диапазоны доступа, возвращаемые VideoPortGetAccessRanges, прежде чем пытаться получить доступ к адаптеру видео во время процесса инициализации драйвера (и системы).
VideoPortVerifyAccessRanges можно вызывать только функцией драйвера мини-порта HwVidFindAdapter.
Каждый драйвер видеопорта должен определять диапазоны доступа относительно шины для своего устройства либо как статически выделенную память в файле заголовка драйвера или коде, либо в стеке. Большинство драйверов минипорта настраивают диапазоны доступа к видео в стеке, за исключением тех, которые используют стандартные диапазоны адресов пк для видеопамяти, например драйверы минипорта, совместимые с VGA.
Функция HwVidFindAdapter должна попытаться получить сведения о диапазоне доступа относительно шины путем вызова VideoPortGetAccessRangesили путем проверки реестра с помощью вызовов VideoPortGetDeviceData или VideoPortGetRegistryParameters. Если HwVidFindAdapter получить эти сведения, драйвер минипорта должен иметь набор значений по умолчанию для диапазонов доступа относительно шины.
Если диапазоны доступа драйвера минипорта настраиваются вневне, программа установки настраивает диапазоны доступа для адаптера в реестре. Такая функция драйвера минипорта HwVidFindAdapter может вызывать VideoPortGetRegistryParameters с функции HwVidQueryNamedValueCall back, которая обрабатывает информацию, полученную из реестра.
HwVidFindAdapter не должны передавать адреса диапазона доступа VideoPortGetDeviceBase, если не вызывается VideoPortVerifyAccessRanges или VideoPortGetAccessRanges, а соответствующая функция возвращает NO_ERROR.
VideoPortVerifyAccessRanges можно вызывать снова, если начальная AccessRanges спецификации или значения в VIDEO_PORT_CONFIG_INFO, например вектор прерывания, приводит к возврату ERROR_XXX, указывающей, что другой драйвер уже утверждал ресурсы.
Если VideoPortVerifyAccessRanges возвращает NO_ERROR, последующий вызов того же адаптера перезаписывает утверждение драйвера минипорта по ресурсам для этого адаптера в реестре.
Обратите внимание, что мини-драйвер не может взаимодействовать с его видеоадаптером, за исключением использования сопоставленных адресов, возвращаемых VideoPortGetDeviceBase с функциями VideoPortRead/WriteXxx.
Если HwVidFindAdapter диапазоны доступа относительно шины и, возможно, другие аппаратные ресурсы для адаптера, но определяет, что он не поддерживает адаптер, Минипорт-драйвер должен отказаться от утверждений о аппаратных ресурсах в реестре путем вызова VideoPortVerifyAccessRanges или VideoPortGetAccessRanges с NumAccessRanges равным нулю и AccessRanges значение NULL.
Чтобы отказаться от утверждений в подмножестве заданных диапазонов доступа, которые драйвер минипорта больше не использует, сделайте следующее:
- Измените спецификацию AccessRanges для адаптера, чтобы каждый элемент, описывающий диапазон, по-прежнему был выпущен RangeStart задать для шины относительную базу заданного диапазона, но RangeLength сбросить до нуля.
- Вызовите VideoPortVerifyAccessRanges с этим измененным массивом AccessRanges.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
целевая платформа | Настольный |
заголовка | video.h (include Video.h) |
библиотеки | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | PASSIVE_LEVEL |