INF DDInstall.FactDef 部分
本部分应在 INF 中用于最终用户可能安装的任何手动安装的非 PnP 设备。 此部分制定此类卡的出厂默认硬件配置设置,如总线相关 I/O 端口和 IRQ(如有)。
[install-section-name.FactDef] |
[install-section-name.nt.FactDef] |
[install-section-name.ntx86.FactDef] |
[install-section-name.ntia64.FactDef] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.FactDef] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.FactDef] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.FactDef] (Windows 10 version 1709 and later versions of Windows)
ConfigPriority=Priority-Value
[DMAConfig=[DMAattrs:]DMANum]
[IOConfig=io-range]
[MemConfig=mem-range]
[IRQConfig=[IRQattrs:]IRQNum]
条目
ConfigPriority=Priority-Value
为出厂默认逻辑配置指定以下优先级值之一。
优先级值 | 含义 |
---|---|
FORCECONFIG | 指定强制配置,它标识了 PnP 管理器必须分配给设备的资源。 |
DESIRED | 提供最高的设备性能。 PnP 管理器可使用此配置来动态配置设备。 |
NORMAL | 提供比 SUBOPTIMAL 更高的设备性能,但性能低于 DESIRED。 这是典型的优先级值。 PnP 管理器可使用此配置来动态配置设备。 |
SUBOPTIMAL | 提供最低的设备性能。 这种配置并不可取,但也行得通。 PnP 管理器可动态配置此配置。 |
RESTART | 需要重启系统。 |
REBOOT | 需要重启系统。 |
POWEROFF | 需要重启。 |
HARDRECONFIG | 需要更改跳线。 |
HARDWIRED | 无法更改。 |
DISABLED | 指示设备处于禁用状态。 |
DMAConfig=[DMAattrs:]DMANum
以十进制数指定总线相关 DMA 通道。 如果设备连接在只有 8 位 DMA 通道的总线上,并且设备使用标准系统 DMA,则 DMAattrs 为可选项。 否则,对于 32 位 DMA,它可以是 D 字母之一;对于 16 位 DMA,它可以是 W 字母之一;而对于 8 位 DMA,它可以是 N 字母之一;如果设备使用总线主 DMA,它可以是 M 字母之一;如果设备使用总线主 DMA,它可以是下列(互斥)字母之一,这些字母表示所使用的 DMA 通道类型:A、B 或 F。如果没有指定 A、B 或 F,则假定使用标准 DMA 通道。
IOConfig=io-range
以下列形式指定设备的 I/O 端口范围:
start-end[([decode-mask][:alias-offset][:attr])]
start 以 64 位十六进制值指定 I/O 端口范围的(总线相关)起始地址。
end 指定 I/O 端口范围的结束地址,也是一个 64 位十六进制值。
decode-mask 定义别名类型,可以是以下任何一种。
掩码值 | 含义 | IOR_Alias 值 |
---|---|---|
3ff | 10 位解码 | 0x04 |
fff | 12 位解码 | 0x10 |
ffff | 16 位解码 | 0x00 |
0 | 正解码 | 0xFF |
alias-offset
未使用。
attr
如果指定范围在系统内存中,则指定字母 M。 如果省略,则指定范围为 I/O 端口空间。
MemConfig=mem-range
以下列形式指定设备的内存范围:
start-end[(attr)]
start 以 64 位十六进制值指定设备内存范围的起始(总线相关)地址。
end 指定内存范围的结束地址,也是 64 位十六进制值。
attr
用以下一个或多个字母指定内存范围的属性:
- R(只读)
- W(只写)
- RW(读取/写入)
- C(允许合并写入)
- H(可缓存)
- F(可预提取)
- D(卡片解码寻址为 32 位,而不是 24 位)
如果同时指定 R 弧 W 或两者均未指定,则假定为读取/写入。
IRQConfig=[IRQattrs:]IRQNum
以十进制数字指定设备使用的总线相关 IRQ。 如果设备使用总线相关、边缘触发的 IRQ,则省略 IRQattrs。 否则,请指定 L 表示电平触发的 IRQ,如果设备可以共享此条目中列出的 IRQ 线路,则指定 LS 表示电平触发的 IRQ。
注解
必须在 INF 文件的每制造商 Models 部分下的设备特定条目中引用指定的 DDInstall 部分。 可以将正式语法语句中显示的 install-section-name 的不区分大小写的扩展插入到跨操作系统和/或跨平台 INF 文件中的此类 DDInstall.FactDef 部分名称中。 有关这些系统定义扩展的详细信息,请参阅创建 INF 文件。
本部分必须包含安装一台设备的完整出厂默认信息。 INF 应按照最适合驱动程序初始化设备的顺序来指定这组条目。 如果有必要,它可以有多个特定类型的条目。
例如,使用两个 DMA 通道的设备的 INF 将在其 DDInstall.FactDef 部分中包含两行 DMAConfig= 行。
可更改出厂默认逻辑配置设置的手动安装设备的 INF 文件也应在其 DDInstall 部分使用 LogConfig 指令。 一般来说,此类 INF 应按相同顺序指定其每个日志配置部分和 DDInstall.FactDef 部分中的条目。
示例
此 IOConfig 条目指定了一个 8 字节大小的 I/O 端口区域,可以从 2F8 开始。
IOConfig=2F8-2FF
此 MemConfig 条目指定了一个 32K 字节的内存区域,可以从 D0000 开始。
MemConfig=D0000-D7FFF