VGA 兼容的微型端口驱动程序的 HwVidFindAdapter

VGA 兼容的微型端口驱动程序的 HwVidFindAdapter 函数 (或注册表 HwVid.。回调) 必须在 VIDEO_PORT_CONFIG_INFO 缓冲区中设置以下内容:

  • NumEmulatorAccessEntries,指示 EmulatorAccessEntries 数组中的条目数

  • EmulatorAccessEntries,指向包含给定数量的 EMULATOR_ACCESS_ENTRY类型元素的静态数组,每个元素描述从 V86 模拟器挂钩的 I/O 端口范围,默认情况下转发到 SvgaHwIoPortXxx 函数

    每个条目包括起始 I/O 地址、范围长度、要捕获 (UCHAR、USHORT 或 ULONG) 的访问大小,无论微型端口驱动程序是否支持通过 I/O 端口 () 输入或输出字符串数据,以及微型端口驱动程序提供的 SvgaHwIoPortXxx 函数(实际验证并可能传输数据)。 每个 SvgaHwIoPortXxx 函数处理读取 (INREP INSB/INSW/INSD) 和/或写入 (OUTSB/OUTSW/OUTSD) UCHAR-、USHORT 或 ULONG 大小数据的传输。

  • EmulatorAccessEntriesContext,一个指向存储的指针,例如微型端口驱动程序的设备扩展中的某个区域,微型端口驱动程序的 SvgaHwIoPortXxx 函数可以在其中批处理一系列需要验证的应用程序发出的指令

  • VdmPhysicalVideoMemoryAddressVdmPhysicalVideoMemoryLength,描述了必须映射到 VDM 地址空间以支持来自全屏 MS-DOS 应用程序的 BIOS INT10 调用的视频内存范围

    当此类应用程序将视频模式更改为微型端口驱动程序的适配器可以支持的视频模式时,微型端口驱动程序可以调用 VideoPortInt10 函数。

  • HardwareStateSize,描述存储适配器的硬件状态以响应IOCTL_VIDEO_SAVE_HARDWARE_STATE请求所需的最小字节数

    当用户切换全屏 MS-DOS 应用程序以在窗口中运行时,微型端口驱动程序必须在显示驱动程序重新控制视频适配器之前保存适配器状态。 请注意,VGA 兼容的微型端口驱动程序还必须支持相互IOCTL_VIDEO_RESTORE_HARDWARE_STATE请求,因为用户可能会将窗口化应用程序切换回全屏模式。

VGA 兼容的微型端口驱动程序的模拟器访问条目指定适配器的访问范围数组的子集。 仿真器访问条目可以是并且通常是其 HwVidFindAdapter 函数设置的映射访问范围数组中的所有 I/O 端口。 它传入对 VideoPortSetTrappedEmulatorPorts 的调用的访问范围,定义当前 IOPM 并确定可通过全屏 MS-DOS 应用程序直接访问的 I/O 端口,指定微型端口驱动程序的模拟器访问条目的子集。