Создание очереди и постановка операций с файлами в очередь
Постановка операций с файлами в очередь полезна, поскольку это позволяет обрабатывать установку в целом, а не по разделам INF.
Чтобы создать очередь файлов, объявите переменную для хранения дескриптора очереди, а затем вызовите функцию SetupOpenFileQueue. После создания очереди можно поставить в очередь операции копирования, переименования и удаления, а также сканировать очередь файлов, чтобы проверить добавленные операции.
Чтобы добавить в очередь операции с отдельными файлами, используйте функции SetupQueueCopy, SetupQueueRenameи SetupQueueDelete.
Все операции с файлами, перечисленные в разделе «Копирование файлов» , «Удаление файлов» или «Переименование файлов» , можно добавить в очередь при помощи SetupQueueCopySection, SetupQueueDeleteSectionили SetupQueueRenameSectionсоответственно.
Другой способ добавления в очередь всех файлов в разделы копирования файлов, перечисленных в разделе Install 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, чтобы указать, что пользователю не следует предлагать варианты пропуска или поиска файлов при возникновении ошибок.