如果一个多功能16位 PC 卡设备为每个功能都配置了寄存器,但在属性内存中没有指向所有寄存器集的指针(即不支持 LONGLINK_MFC 元组),则这类设备的供应商可以使用系统提供的多功能总线驱动程序(mf.sys),但必须提供自定义的 INF 文件并支持单独的功能。
基于 NT 的平台上此类设备的供应商可以使用系统提供的多功能设备的函数驱动程序。
设备的自定义 INF 必须将 mf.sys 指定为设备的函数驱动程序。 然后,系统提供的 mf.sys 驱动程序将枚举设备的功能。
有关使用系统提供的 mf.sys 驱动程序的详细信息,请参阅“ 使用 System-Supplied 多功能总线驱动程序 ”。
此类设备的供应商必须提供以下内容:
多功能设备的自定义 INF 文件。 (供应商提供)
供应商必须提供一个多功能 INF 文件,该文件将 mf.sys 指定为多功能总线驱动程序,指定类“MultiFunction”(其关联的 GUID,如 devguid.h 中定义),并提供缺少的配置寄存器地址(es)。 请参阅本部分后面的其他信息。
设备每个功能的 PnP 功能驱动程序。 (供应商提供)
由于多功能总线驱动程序处理多功能语义,因此函数驱动程序可以是将函数打包为单个设备时使用的相同驱动程序。
设备的每个函数的 INF 文件。 (供应商提供)
INF 文件可以是将函数打包为单个设备时使用的相同文件。 INF 文件不需要任何特殊的多功能语义。
此类多功能设备的自定义 INF 必须至少包含一个 INF DDInstall.LogConfigOverride 节。 重写节必须包含每个函数的 MfCardConfig 条目,用于标识每个配置寄存器集的位置。
INF 必须重述设备指定的所有资源要求,因为如果 INF 中存在替代配置,PnP 管理器不会使用设备中的任何设备资源要求。
使用 INF LogConfig 指令中所述的语法指定 MfCardConfig 条目。
例如,对于包含调制解调器和网络适配器的多功能电脑卡设备的自定义 INF,请考虑以下摘录:
;...
[DDInstall.LogConfigOverride]
LogConfig = DDInstall.Override0
[DDInstall.Override0]
IOConfig = 3F8-3FF ; Com1
IOConfig = 10@100-FFFF%FFF0 ; NIC I/O
IRQConfig = 3,4,5,7,9,10,11 ; IRQ
MemConfig = 2000@0-FFFFFFFF%FFFFE000 ; Memory Descriptor 0
MemConfig = 1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor 1
MfCardConfig = 1000:47:0(A)
MfCardConfig = 1080:47:1
;...
此示例显示了两个 MfCardConfig 条目,一个用于设备的每个函数。 第一个 MfCardConfig 条目包含以下信息:
1000 (ConfigRegBase)
指定在卡片属性内存的偏移量0x1000处存在一组配置寄存器。 在此示例中,这些寄存器中的信息描述了卡片上的调制解调器功能。
47 (ConfigOptions)
指定总线驱动程序在 ConfigRegBase 偏移量(0x1000)处编程到配置选项寄存器中的十六进制值。
0 (IoConfigIndex)
指定此函数的 I/O 资源在本节的第一个 IOConfig 条目中列出。 索引为零表示第一个条目,在本示例中为“IOConfig = 3F8-3FF”。
A (attrs)
指示总线驱动程序为此功能启用音频,这是调制解调器的典型功能。
第二个 MfCardConfig 条目包含有关设备上第二个函数的信息(在本示例中为网络适配器)。 这条记录指定偏移量0x1080处有第二组配置寄存器。 总线驱动程序会将 0x47 的 ConfigOptions 值写入此函数的配置选项寄存器。 IoConfigIndex 值指示总线驱动程序在本部分中使用第二个 IOConfig 条目(IOConfig = 10@100-FFFF%FFF0)来编程 I/O 基并限制此函数的寄存器。
包括多个 DDInstall。重写 INF 中的 N 节以指定多个非排队 I/O 端口范围的选择。
如果设备使用的内存窗口不是从零开始,则DDInstallOverrideN节必须包含PcCardConfig条目。 如果替代节同时具有 MfCardConfig 条目和 PcCardConfig 条目,则 PCMCIA 总线驱动程序会忽略 PcCardConfig 条目中的 ConfigIndex 值,并且只使用 MemoryCardBaseN 信息。 有关PcCardConfig条目的详细信息,请参阅支持配置寄存器不完整的PC卡。