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的版本。 由于此结构可能从系统的一个版本增加到下一个版本,因此微型端口驱动程序应检查此成员,以确定微型端口驱动程序是否至少 大小(VIDEO_PORT_CONFIG_INFO)来配置其适配器。

SystemIoBusNumber

指定微型端口驱动程序适配器可能连接的 I/O 总线的系统分配数目。 视频端口驱动程序始终初始化此成员。

AdapterInterfaceType

指定总线接口的类型。 视频端口驱动程序始终基于 PnP 管理器检测到设备的总线设置此成员。

BusInterruptLevel

如果视频硬件不生成中断,则此成员无关紧要,方法是将 VIDEO_HW_INITIALIZATION_DATA 结构中的 HwInterrupt 成员设置为 NULL。 否则,它指定与 isa MicroChannel 类型总线上的中断请求相对应的总线相对 IRQL。 此成员的预设默认值为零。 如果微型端口驱动程序在 IsaMicroChannel 类型总线上处理视频适配器的中断,或者为 Eisa 类型总线上的级别敏感中断配置的视频适配器,则必须提供正确的值。

如果微型端口驱动程序的 HwVidFindAdapter 函数发现视频适配器不会生成中断,或者无法确定适配器的有效中断向量/级别,HwVidFindAdapter 应同时将 BusInterruptLevelBusInterruptVector 设置为零。

BusInterruptVector

如果视频硬件不生成中断,则此成员无关紧要,方法是将VIDEO_HW_INITIALIZATION_DATA结构中的 HwInterrupt 成员设置为 NULL。 否则,它指定使用中断向量(如 PCI 总线)的 I/O 总线上的视频硬件使用的总线相对矢量。 此成员的预设默认值为零。

如果微型端口驱动程序的 HwVidFindAdapter 函数发现视频适配器不会生成中断,或者无法确定适配器的有效中断向量/级别,HwVidFindAdapter 应同时将 BusInterruptVectorBusInterruptLevel 设置为零。

InterruptMode

指示视频硬件使用 闩锁 还是 LevelSensitive 中断。 如果视频端口驱动程序相关,则初始化此成员,但具有 ISR 的微型端口驱动程序应检查它是否包含正确的值,并在必要时重置它。

NumEmulatorAccessEntries

此成员和通过 HardwareStateSize 的所有后续成员都与不声明自己为基于 x86 的基于 NT 的作系统平台上的 VGA 兼容的微型端口驱动程序的微型端口驱动程序无关。 对于不支持基于 x86 的计算机上的 VGA 兼容 SVGA 适配器的微型端口驱动程序,此成员应为零。 否则,它指定以下数组中EMULATOR_ACCESS_RANGE类型的元素数。

EmulatorAccessEntries

指向 VGA 兼容的微型端口驱动程序设置的仿真器访问范围的数组的指针。 每个模拟器访问范围必须是微型端口驱动程序 VIDEO_ACCESS_RANGE类型数组的正确子集。 每个元素指定 V86 仿真器要挂钩的 I/O 端口范围,并且可能由驱动程序提供的 SvgaHwIoPortXxx 函数监视,每当 MS-DOS 应用程序(全屏运行)尝试直接写入视频适配器寄存器。 通常,此数组描述相应访问范围数组中的所有 I/O 端口范围。 如果微型端口驱动程序在驱动程序本身中静态定义其模拟器访问条目数组,则端口驱动程序将初始化指向该数组的此指针。 如果 NumEmulatorAccessEntries 为零,则此成员 NULL

EmulatorAccessEntriesContext

指定通过每次调用 SvgaHwIoPortXxx 函数传递的值,该函数 EmulatorAccessEntries 数组中所述。 通常,与 VGA 兼容的微型端口驱动程序将此成员的值设置为 HwDeviceExtension 指针或设备扩展中的偏移量,以便微型端口驱动程序可以在其 SvgaHwIoPortXxx 函数中维护状态(如批处理的应用程序颁发的指令)。

VdmPhysicalVideoMemoryAddress

指定要映射到 VDM 地址空间的一系列视频内存的基(映射)逻辑地址,以支持 x86 BIOS INT10。 对于不支持基于 x86 的计算机上的 VGA 兼容适配器的微型端口驱动程序,此成员应 NULL

VdmPhysicalVideoMemoryLength

指定范围的大小(以字节为单位)映射到 VDM 的地址空间,以支持 x86 BIOS。 对于不支持基于 x86 的计算机上的 VGA 兼容适配器的微型端口驱动程序,此成员应为零。

HardwareStateSize

指定存储硬件状态信息以响应 IOCTL_VIDEO_SAVE_HARDWARE_STATE 请求所需的最小大小(以字节为单位),该请求必须仅受基于 x86 的计算机上的 VGA 兼容的微型端口驱动程序支持。 此成员的初始化值为零。 VGA 兼容的微型端口驱动程序必须将此成员设置为保存的适配器状态所需的字节数。

DmaChannel

保留供系统使用。

DmaPort

保留供系统使用。

DmaShareable

保留供系统使用。

InterruptShareable

如果微型端口驱动程序的设备中断,如果中断无法与其他设备共享,则此成员应设置为零;如果可以共享中断,则此成员应设置为 1。 否则,微型端口驱动程序可以忽略此成员。

Master

保留供系统使用。

DmaWidth

保留供系统使用。

DmaSpeed

保留供系统使用。

bMapBuffers

保留供系统使用。

NeedPhysicalAddresses

保留供系统使用。

DemandMode

保留供系统使用。

MaximumTransferLength

保留供系统使用。

NumberOfPhysicalBreaks

保留供系统使用。

ScatterGather

保留供系统使用。

MaximumScatterGatherChunkSize

保留供系统使用。

VideoPortGetProcAddress

指向 VideoPortGetProcAddress 回调例程的指针。 此成员用于查找视频端口驱动程序函数的地址,视频微型端口驱动程序无需直接链接到它即可使用该函数。 这样,驱动程序二进制文件就可以在早期版本的 Windows 上运行。 有关详细信息,请参阅 使用 VideoPortGetProcAddress

DriverRegistryPath

指向包含设备服务的注册表路径的指针。 显示驱动程序可以采用任何认为有用的方式使用此信息。

SystemMemorySize

向驱动程序指示系统中物理内存的数量(以字节为单位)。

要求

要求 价值
标头 video.h (include Video.h)

另请参阅

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges