创建队列和队列文件操作

对文件操作进行排队很有用,因为它使你可以将安装作为一个整体来处理,而不是按 INF 部分进行处理。

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

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

可以分别使用 SetupQueueCopySectionSetupQueueDeleteSection 或 SetupQueueRenameSection“复制文件”、“删除文件”或“重命名文件”部分中列出的所有文件操作添加到队列中。

另一种将 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 中的部分,其中包含要排队进行复制的文件。

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