Функция SetupScanFileQueueA (setupapi.h)
[Эта функция доступна для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]
Функция SetupScanFileQueue сканирует очередь файлов установки, выполняя операцию с каждым узлом в списке копирования. Операция задается набором флагов. Эту функцию можно вызывать до или после фиксации очереди.
Синтаксис
WINSETUPAPI BOOL SetupScanFileQueueA(
[in] HSPFILEQ FileQueue,
[in] DWORD Flags,
[in] HWND Window,
[in] PSP_FILE_CALLBACK_A CallbackRoutine,
[in] PVOID CallbackContext,
[out] PDWORD Result
);
Параметры
[in] FileQueue
Дескриптор очереди файлов установки, список копирования которой необходимо сканировать или итерировать.
[in] Flags
Флаги для объединения для управления операцией сканирования очереди файлов. Обратите внимание, что необходимо указать SPQ_SCAN_FILE_PRESENCE, SPQ_SCAN_USE_CALLBACK, SPQ_SCAN_USE_CALLBACKEX или SPQ_SCAN_FILE_VALIDITY.
Flag | Значение |
---|---|
|
Целевые файлы в очереди копирования уже присутствуют в целевом объекте. |
|
Целевые файлы в очереди копирования уже присутствуют в целевом объекте с допустимыми сигнатурами. Доступно в Windows 2000 и более поздних версиях. |
|
Подпрограмма обратного вызова для каждого узла очереди. Если подпрограмма обратного вызова возвращает ненулевое значение, обработка очереди останавливается, а SetupScanFileQueue возвращает ноль. Создадите SPFILENOTIFY_QUEUESCAN код уведомления и передайте указатель на целевой путь в виде Param1. |
|
Подпрограмма обратного вызова для каждого узла очереди. Если подпрограмма обратного вызова возвращает ненулевое значение, обработка очереди останавливается, а SetupScanFileQueue возвращает ноль. Отправьте уведомление SPFILENOTIFY_QUEUESCAN_EX и передайте указатель на структуру FILEPATHS как Param1. SPQ_SCAN_USE_CALLBACKEX также проверяет, имеет ли файл действительную сигнатуру. Доступно начиная с Windows 2000. Только в Windows XP можно отключить проверку подписи, объединив этот флаг с SPQ_SCAN_FILE_PRESENCE. |
|
Флаг указывается, когда все файлы в очереди передают проверка для допустимых подписей. SetupScanFileQueue информирует пользователя о том, что для операции требуются файлы, которые уже присутствуют в целевом объекте. Этот флаг игнорируется, если SPQ_SCAN_FILE_PRESENCE или SPQ_SCAN_FILE_VALIDITY не указан. Этот флаг не может использоваться с SPQ_SCAN_PRUNE_COPY_QUEUE или SPQ_SCAN_PRUNE_DELREN. |
|
В сочетании с SPQ_SCAN_FILE_PRESENCE удаляет имеющиеся записи из очереди копирования. В сочетании с SPQ_SCAN_FILE_VALIDITY удаляет подписанные записи из очереди копирования. Доступно начиная с Windows 2000. Только в Windows XP файлы, которые также указаны в очереди удаления или переименования, не удаляются, если не указан SPQ_SCAN_PRUNE_DELREN. |
|
Доступно начиная с Windows XP. Проблемы SPFILENOTIFY_QUEUESCAN_SIGNERINFO уведомления и передают указатель на структуру FILEPATHS_SIGNERINFO как Param1. Проверяет каждый файл на наличие допустимой подписи и сообщает сведения о подписи с помощью функции обратного вызова. |
|
В сочетании с SPQ_SCAN_FILE_PRESENCE или SPQ_SCAN_FILE_VALIDITY удаляет записи в очереди удаления или переименования, которые также находятся в очереди копирования. В сочетании с SPQ_SCAN_PRUNE_COPY_QUEUE ограничивает файлы, удаленные из очереди копирования, файлами, которые не находятся в очередях удаления или переименования. Доступно начиная с Windows XP. |
[in] Window
Необязательный дескриптор окна для создания диалоговых окон, которые отображаются. Этот параметр не используется, если параметр Flags не содержит SPQ_SCAN_FILE_PRESENCE или если flags не содержит SPQ_SCAN_INFORM_USER.
[in] CallbackRoutine
Необязательный указатель на функцию обратного вызова FileCallback , вызываемую на каждом узле очереди копирования. Код уведомления, передаваемый функции обратного вызова , SPFILENOTIFY_QUEUESCAN. Этот параметр является обязательным, если flags включает SPQ_SCAN_USE_CALLBACK.
[in] CallbackContext
Необязательный указатель на контекст, содержащий определяемые вызывающим объектом данные, передаваемые в подпрограмму обратного вызова, на которую указывает CallbackRoutine.
[out] Result
Указатель на переменную, которая получает результат операции сканирования.
Возвращаемое значение
Функция возвращает ненулевое значение, если были обработаны все узлы в очереди.
Если был установлен флаг SPQ_SCAN_USE_CALLBACK, значение в результирующем значении равно 0. Подпрограмме обратного вызова, заданной callbackRoutine , отправляется уведомление SPFILENOTIFY_QUEUESCAN. CallbackRoutine.Param1 указывает указатель на массив, содержащий сведения о целевом пути. Указатель был приведен к целому числу без знака и должен быть переадресован в массив TCHAR MAX_PATH элементов, прежде чем подпрограмма обратного вызова сможет получить доступ к информации. Параметр CallbackRoutine.Param2 имеет значение SPQ_DELAYED_COPY, если текущий узел очереди используется и не может быть скопирован до перезапуска системы. В противном случае CallbackRoutine.Param2 принимает значение 0.
Если SPQ_SCAN_USE_CALLBACK не задано, результат указывает, прошла ли очередь проверка присутствия или допустимости, как показано в следующей таблице.
Код возврата | Описание |
---|---|
|
Очередь завершилась сбоем проверка или она передала проверка, но SPQ_SCAN_INFORM_USER была указана, и пользователю нужны новые копии файлов. |
|
Очередь передала проверка и, если указан SPQ_SCAN_INFORM_USER, пользователь указал, что копирование не требуется. Очередь копирования пуста, и в очереди удаления или переименования отсутствуют элементы, поэтому вызывающий объект может пропустить фиксацию очереди. |
|
Очередь передала проверка и, если указан SPQ_SCAN_INFORM_USER, пользователь указал, что копирование не требуется. Очередь копирования пуста, но в очереди удаления или переименования есть элементы, поэтому вызывающий объект не может пропустить фиксацию очереди. |
Функция возвращает ноль, если произошла ошибка или функция обратного вызова возвращала ненулевое значение. Если результат не является нулевым, это значение, возвращаемое функцией обратного вызова, которая остановила обработку очереди. Если результат равен нулю, расширенные сведения об ошибке можно получить с помощью вызова Метода GetLastError.
Комментарии
Примечание
Заголовок setupapi.h определяет SetupScanFileQueue в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | setupapi.h |
Библиотека | Setupapi.lib |
DLL | Setupapi.dll |