структура 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) |