структура VIDEO_PORT_CONFIG_INFO (video.h)

Структура VIDEO_PORT_CONFIG_INFO содержит сведения о конфигурации адаптера для конкретной шины. Эта структура используется для настройки видеоустройства и предоставления драйверу видеопорта сведения о конфигурации. Затем драйвер видеопорта может выделить необходимые системные ресурсы для драйвера мини-порта и его адаптера.

Синтаксис

typedef struct _VIDEO_PORT_CONFIG_INFO {
  ULONG                        Length;
  ULONG                        SystemIoBusNumber;
  INTERFACE_TYPE               AdapterInterfaceType;
  ULONG                        BusInterruptLevel;
  ULONG                        BusInterruptVector;
  KINTERRUPT_MODE              InterruptMode;
  ULONG                        NumEmulatorAccessEntries;
  PEMULATOR_ACCESS_ENTRY       EmulatorAccessEntries;
  ULONG_PTR                    EmulatorAccessEntriesContext;
  PHYSICAL_ADDRESS             VdmPhysicalVideoMemoryAddress;
  ULONG                        VdmPhysicalVideoMemoryLength;
  ULONG                        HardwareStateSize;
  ULONG                        DmaChannel;
  ULONG                        DmaPort;
  UCHAR                        DmaShareable;
  UCHAR                        InterruptShareable;
  BOOLEAN                      Master;
  DMA_WIDTH                    DmaWidth;
  DMA_SPEED                    DmaSpeed;
  BOOLEAN                      bMapBuffers;
  BOOLEAN                      NeedPhysicalAddresses;
  BOOLEAN                      DemandMode;
  ULONG                        MaximumTransferLength;
  ULONG                        NumberOfPhysicalBreaks;
  BOOLEAN                      ScatterGather;
  ULONG                        MaximumScatterGatherChunkSize;
  PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
  PWSTR                        DriverRegistryPath;
  ULONGLONG                    SystemMemorySize;
} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;

Члены

Length

Размер данной структуры в байтах. Драйвер видеопорта всегда инициализирует элемент Length . По сути, его значение указывает версию VIDEO_PORT_CONFIG_INFO, используемую системой. Так как эта структура может увеличиваться с одной версии системы на другую, драйвер мини-порта должен проверка этот элемент, чтобы определить, является ли он по крайней мере sizeof (VIDEO_PORT_CONFIG_INFO), который драйвер минипорта использует для настройки адаптера.

SystemIoBusNumber

Указывает назначенный системой номер шины ввода-вывода, к которой может быть подключен адаптер водителя мини-порта. Драйвер видеопорта всегда инициализирует этот элемент.

AdapterInterfaceType

Указывает тип интерфейса шины. Драйвер видеопорта всегда задает этот член в зависимости от шины, в которой диспетчер PnP обнаружил устройство.

BusInterruptLevel

Этот элемент не имеет значения, если видеоустройство не создает прерываний, задавая для элемента HwInterrupt в структуре VIDEO_HW_INITIALIZATION_DATAзначение NULL. В противном случае он указывает относительный к шине IRQL, соответствующий запросу прерывания для шин типа Isa или MicroChannel . Предустановленное значение по умолчанию для этого элемента равно нулю. Драйвер минипорта должен указать правильное значение, если он обрабатывает прерывания для видеоадаптера в шине типа Isa или MicroChannel или для видеоадаптера, настроенного для прерываний уровня в шине типа Eisa .

Если функция HwVidFindAdapter драйвера мини-порта обнаруживает, что видеоадаптер не создает прерываний или что он не может определить допустимый вектор или уровень прерываний для адаптера, HwVidFindAdapter должен задать для обоих значений BusInterruptLevel и BusInterruptVector значение 0.

BusInterruptVector

Этот элемент не имеет значения, если видеоустройство не создает прерываний, задавая для элемента HwInterrupt в структуре VIDEO_HW_INITIALIZATION_DATA значение NULL. В противном случае он указывает относительный вектор шины, используемый видеоустройством в шинах ввода-вывода, которые используют векторы прерываний, такие как шины PCI. Предустановленное значение по умолчанию для этого элемента равно нулю.

Если функция HwVidFindAdapter драйвера мини-порта обнаруживает, что видеоадаптер не создает прерываний или что он не может определить допустимый вектор или уровень прерываний для адаптера, HwVidFindAdapter должен задать для обоих значений BusInterruptVector и BusInterruptLevel значение 0.

InterruptMode

Указывает, использует ли видео оборудование прерывания Latched или LevelSensitive . Драйвер видеопорта инициализирует этот элемент, если это необходимо, но драйвер минипорта с ISR должен проверка, что он содержит правильное значение, и при необходимости сбросить его.

NumEmulatorAccessEntries

Этот член и все последующие члены через HardwareStateSize не имеют отношения к драйверам мини-портов, которые не объявляют себя совместимыми с VGA драйверами мини-портов на платформах операционных систем на основе NT на базе x86. Для драйверов мини-портов, которые не поддерживают совместимые с VGA адаптеры SVGA на компьютерах с архитектурой x86, этот элемент должен быть равен нулю. В противном случае он указывает количество элементов типа EMULATOR_ACCESS_RANGE в следующем массиве.

EmulatorAccessEntries

Указатель на массив диапазонов доступа эмулятора, настроенных драйвером мини-порта, совместимым с VGA. Каждый диапазон доступа эмулятора должен быть соответствующим подмножеством массива VIDEO_ACCESS_RANGE типа драйвера мини-порта. Каждый элемент определяет диапазон портов ввода-вывода, которые будут подключены эмулятором V86 и, возможно, отслеживаются функцией SvgaHwIoPortXxxx, предоставляемой драйвером, всякий раз, когда приложение MS-DOS, работающее в полноэкранном режиме, пытается выполнить запись непосредственно в регистры видеоадаптера. Обычно этот массив описывает все диапазоны портов ввода-вывода в соответствующем массиве диапазонов доступа. Если драйвер мини-порта статически определяет массив записей доступа эмулятора в самом драйвере, драйвер порта инициализирует этот указатель на этот массив. Если numEmulatorAccessEntries равно нулю, этот элемент имеет значение NULL.

EmulatorAccessEntriesContext

Задает значение, передаваемое при каждом вызове функции SvgaHwIoPortXxx, описанной в массиве EmulatorAccessEntries . Как правило, драйвер мини-порта, совместимый с VGA, задает для этого элемента значение указателя HwDeviceExtension или смещение в расширении устройства, чтобы драйвер мини-порта мог поддерживать состояние, например пакетные инструкции, выданные приложением, в своих функциях SvgaHwIoPortXxx .

VdmPhysicalVideoMemoryAddress

Задает базовый (сопоставленный) логический адрес диапазона видеопамяти для сопоставления с адресным пространством VDM для поддержки INT10 BIOS x86. Для драйверов мини-портов, которые не поддерживают адаптеры, совместимые с VGA, на компьютерах с архитектурой x86 этот элемент должен иметь значение NULL.

VdmPhysicalVideoMemoryLength

Указывает размер диапазона в байтах, сопоставленного с адресным пространством VDM для поддержки BIOS x86. Для драйверов мини-портов, которые не поддерживают адаптеры, совместимые с VGA, на компьютерах с архитектурой x86 этот элемент должен быть равен нулю.

HardwareStateSize

Указывает минимальный размер в байтах, необходимый для хранения сведений о состоянии оборудования в ответ на запрос IOCTL_VIDEO_SAVE_HARDWARE_STATE , который должен поддерживаться только драйверами мини-портов, совместимыми с VGA, на компьютерах с архитектурой x86. Инициализированное значение для этого элемента равно нулю. Драйвер мини-порта, совместимый с VGA, должен задать для этого элемента количество байтов, необходимое для хранения сохраненного состояния адаптера.

DmaChannel

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

DmaPort

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

DmaShareable

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

InterruptShareable

Если устройство драйвера мини-порта прерывает работу, этот член должен иметь значение 0, если прерывание не может быть предоставлено другому устройству, или иметь значение , если прерывание может быть общим. В противном случае драйвер мини-порта может игнорировать этот элемент.

Master

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

DmaWidth

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

DmaSpeed

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

bMapBuffers

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

NeedPhysicalAddresses

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

DemandMode

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

MaximumTransferLength

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

NumberOfPhysicalBreaks

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

ScatterGather

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

MaximumScatterGatherChunkSize

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

VideoPortGetProcAddress

Указатель на подпрограмму обратного вызова VideoPortGetProcAddress . Этот элемент используется для поиска адреса функции драйвера видеопорта, которую драйвер видео минипорта может использовать, не связываясь с ним напрямую. Это позволяет выполнять двоичный файл драйвера в более ранней версии Windows. Дополнительные сведения см. в разделе Использование VideoPortGetProcAddress.

DriverRegistryPath

Указатель на путь реестра, содержащий службу устройства. Драйвер дисплея может использовать эти сведения любым способом, который он сочтет полезным.

SystemMemorySize

Указывает драйверу объем (в байтах) физической памяти в системе.

Требования

Требование Значение
Заголовок video.h (включить Video.h)

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

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges