INF SourceDisksNames 节
SourceDisksNames 部分标识包含要在安装期间传输到目标计算机的源文件的分发磁盘或 CD-ROM 光盘。
[SourceDisksNames] |
[SourceDisksNames.x86] |
[SourceDisksNames.ia64] | (Windows XP and later versions of Windows)
[SourceDisksNames.amd64] | (Windows XP and later versions of Windows)
[SourceDisksNames.arm] | (Windows 8 and later versions of Windows)
[SourceDisksNames.arm64] (Windows 10 version 1709 and later versions of Windows)
diskid = disk-description[,tag-or-cab-file] |
diskid = disk-description[,[tag-or-cab-file][,[unused][,path]]] |
diskid = disk-description[,[tag-or-cab-file],[unused],[path][,flags]] |
diskid = disk-description[,[tag-or-cab-file],[unused],[path],[flags][,tag-file]] (Windows XP and later versions of Windows)
...
项
diskid
指定标识源磁盘的十进制格式的非否定整数。 此值需要的存储不能超过 4 个字节。 如果分发有多个源磁盘,则本部分中的每个 diskid 条目必须具有唯一值,例如 1、 2、 3 等。
disk-description
指定 %strkey% 标记或描述 diskid 标识的磁盘的内容和/或用途的“带引号的字符串”。 安装程序可以在安装过程中向最终用户显示此字符串的值,例如,标识要在安装过程的特定阶段插入驱动器的源磁盘。
本节中的每个 %strkey% 规范都必须在 INF 的 字符串 部分中定义。 任何不是 %strkey% 令牌的磁盘说明都是用户可见的字符串,如果具有任何前导空格或尾随空格,则必须用双引号字符 (“) 分隔。
tag-or-cab-file
此可选值指定分发磁盘上提供的 标记文件 或 cabinet (.cab) 文件 的名称,该文件位于 安装根 目录或 路径指定的子目录中(如果有)。 值应仅指定文件名和扩展名,而不指定任何目录或子目录。
Windows 使用标记文件来验证用户是否插入了正确的安装磁盘。 可移动媒体需要标记文件,对于固定媒体,标记文件是可选的。
如果 Windows 无法在安装介质上按名称找到安装文件,并且 tag-or-cab-file 的扩展名为 。cab,Windows 将其用作包含安装文件的 cabinet 文件的名称。
如果 为 。指定了 cab 扩展,Windows 将该文件视为标记文件和内阁文件,如以下 “备注 ”部分所述。
对于 Windows XP 和更高版本的 Windows,另请参阅 标志 和 标记文件 条目值。
unused
Windows 2000 及更高版本的 Windows 不再支持此项。
路径
此可选值指定包含源文件的分发磁盘上的目录路径。
路径相对于安装根目录,表示为 \dirname1\dirname2...等。 如果某个条目中省略此值,则假定文件位于分发磁盘的安装根目录中。
可以使用 INF SourceDisksFiles 节 指定包含源文件的子目录(相对于给定路径目录)。 但是,标记文件和 cabinet 文件 必须驻留在给定的路径目录或安装根目录中。
flag
从 Windows XP 开始,将其设置为 0x10 将强制 Windows 使用 tag-or-cab-file 作为 cabinet 文件名,并使用 tag-file 作为标记文件名。 否则, 标志 仅供内部使用。
tag-file
从 Windows XP 开始,如果 标志 设置为 0x10,则此可选值指定在分发介质上提供的 标记文件 的名称,该文件位于 安装根 目录或 路径指定的子目录中。 值应指定不带路径信息的文件名和扩展名。 有关详细信息,请参阅备注部分。
注解
SourceDisksNames 节可以包含任意数量的条目,每个分发磁盘一个条目。 具有 SourceDisksNames 节的任何 INF 还必须具有 INF SourceDisksFiles 节。 (按照约定, SourceDisksNames 和 SourceDisksFiles 部分遵循 INF 版本部分。)
这些部分永远不会出现在系统提供的 INF 文件中。 相反,系统提供的 INF 文件在其“版本”部分中指定 LayoutFile 条目。
SourceDisksNames 节中的条目可以采用两种格式之一,其中一种格式仅在 Windows XP 和更高版本的 Windows 中受支持。
在第一种格式中, tag-or-cab-file 参数可以指定 标记文件 或 cabinet 文件。 遇到此格式时,Windows 使用以下算法:
将 tag-or-cab-file 值视为标记文件名,并在安装介质上查找该文件。 如果介质是可移动的,并且找不到标记文件,请提示用户输入正确的介质。 如果介质是固定的,并且找不到标记文件或要安装的第一个文件,请提示用户输入正确的介质。
尝试直接从介质复制安装文件。
将 tag-or-cab-file 值视为 .cab 文件并查找该文件。
尝试从 .cab 文件复制安装文件。
提示用户输入未找到的文件。
第二种格式在 Windows XP 和更高版本的 Windows 中受支持。 使用此格式时,可以使用 tag-or-cab-file、 flags 和 tag-file 条目来指定 .cab 文件和标记文件。 遇到此格式时,Windows 使用以下算法:
如果安装介质是可移动的,请查找与 tag-file 指定的文件名匹配的标记文件。 如果未找到该文件,请提示用户输入正确的介质。 如果介质已修复,请查找标记文件或 cabinet 文件。 如果两个文件均未找到,请提示用户输入正确的介质。
尝试从 tag-or-cab-file 指定的 .cab 文件复制安装文件。
提示用户输入未找到的文件。
对于任一格式,必须为每个版本的驱动程序文件提供具有不同文件名的不同标记文件。
若要支持在多个系统体系结构上分发驱动程序文件,可以通过将 .x86、.ia64、.amd64 或其他体系结构扩展添加到 SourceDisksNames 来指定特定于体系结构的 SourceDisksNames 部分。
请注意,与其他部分(如 DDInstall 部分)不同, SourceDisksNames 节的平台扩展不是 .ntx86、 .ntia64、 .ntamd64 等。例如,若要为基于 x86 的系统指定源磁盘名称部分,请使用 SourceDisksNames.x86 节,而不是 SourceDisksNames.ntx86 节。 同样,使用 SourceDisksNames.ia64 节指定基于 Itanium 的系统,使用 SourceDisksNames.amd64 节指定基于 x64 的系统。
在安装过程中,SetupAPI 函数在使用泛型部分之前查找特定于体系结构的 SourceDisksNames 节。 例如,如果在基于 x86 的平台上安装期间,INF 文件引用磁盘“2”,则设备安装函数在 查找 SourceDisksNames.x86 中的磁盘“2”条目之前查找 SourceDisksNames。
设备安装函数使用 SourceDisksNames 和 SourceDisksNames。与 相关 SourceDisksFiles 节位于同一 INF 文件中的体系结构部分。
示例
在以下示例中, write.exe 文件对于所有 Windows 平台都是相同的,并且位于 CD-ROM 分发磁盘上的 \common 子目录中的安装根目录下。 cmd.exe 文件是特定于平台的文件,仅在基于 x86 的平台上使用。
[SourceDisksNames]
1 = "Windows NT CD-ROM",file.tag,,\common
[SourceDisksNames.x86]
2 = "Windows NT CD-ROM",file.tag,,\x86
[SourceDisksFiles]
write.exe = 1
cmd.exe = 2
以下示例使用包含 .tag 文件和.cab文件的单独规范 的 条目。
[SourceDisksNames]
1 = "Dajava","Dajava.cab",,,0x10,"Dajava.tag"
2 = "Osc","Osc.cab",,,0x10,"OSC.tag"
3 = "Win","Win.cab",,,0x10,"Win.tag"
4 = "XMLDSO","XMLDSO.cab",,,0x10,"XMLDSO.tag"
[SourceDisksFiles]
ArrayBvr.class=1
BvrCallback.class=1
BvrsToRun.class=1
choice.osc=2
custom.osc=2
login.osc=2
mwcload.exe=3
mwcloadw.exe=3
mwclw32.dll=3
Atom.class=4
DTD.class=4
Entity.class=4
Entry.class=4
[DestinationDirs]
Test = 13
[DefaultInstall]
CopyFiles = Test
[Test]
ArrayBvr.class
mwcloadw.exe
Entity.class
custom.osc
BvrCallback.class
BvrsToRun.class
choice.osc
login.osc
mwcload.exe
mwclw32.dll
Atom.class
DTD.class
Entry.class
[Strings]
Msft = "Microsoft"