创建队列和队列文件操作

队列文件操作很有用,因为它使你可以以整体方式处理安装,而不是由 INF 部分处理。

若要创建文件队列,请声明一个变量来存储队列句柄,然后调用 SetupOpenFileQueue 函数。 创建队列后,可以对复制、重命名和删除操作进行排队,并扫描文件队列以验证排队操作。

若要将单个文件操作添加到队列,请使用 SetupQueueCopySetupQueueRenameSetupQueueDelete 函数。

复制文件删除文件重命名文件部分中列出的所有文件操作都可以分别使用 SetupQueueCopySectionSetupQueueDeleteSectionSetupQueueRenameSection 添加到队列。

将 INF 的“安装部分中列出的所有文件排队的另一种方法是使用函数 SetupInstallFilesFromInfSection

以下示例使用 SetupQueueCopySection 函数对 INF 文件的 “复制文件 ”部分中列出的所有文件进行排队复制操作。

test = SetupQueueCopySection(
     MyQueue,                  \\Handle to the open queue
     "A:\",                    \\Source root path
     MyInf,                    \\Inf containing the source info
     NULL,                     \\specifies that MyInf contains 
                               \\  the section to copy as well
     MySection,                \\the name of the section to queue
  
                               \\flags specifying the copy style
     SP_COPY_NOSKIP | SP_COPY_NOBROWSE,
);

在此示例中,MyQueue 是将复制操作添加到“A:\”的队列指定源的路径,MyInf 是打开的 INF 文件的句柄。 参数 ListInfHandle 设置为 NULL,指示要复制的节在 MyInf 中。 MySection 是 MyInf 中的节,其中包含要排队进行复制的文件。

SP_COPY_NOSKIP和SP_COPY_NOBROWSE的标志已使用 OR 运算符进行组合,以指示用户不应提供跳过或浏览文件(如果发生错误)的选项。