Поделиться через


Порядок обязательств очереди

Когда функция SetupCommitFileQueue фиксирует очередь файлов, она обрабатывает операции с файлами в следующем порядке: операции удаления файлов, затем операции переименования файлов и, наконец, операции копирования файлов. В следующей схеме показан жизненный цикл процесса выполнения обязательств очереди.

 

  • запуск вложенной очереди удаления
    • запуск операции <удаления файла — повтор для каждого из них
    • завершение операции <удаления файла — удаление файла в очереди
  • завершение вложенной очереди удаления
  • запуск вложенной очереди переименования
    • запуск операции <переименования файла — повтор для каждого из них
    • завершение операции <удаления файла — переименование файла в очередь
  • завершение вложенной очереди переименования
  • запуск вложенного запроса копирования
    • запуск операции <копирования файла — повтор для каждого из них
    • завершение операции <копирования файла — копирование файла в очередь
    • завершение вложенной очереди копирования
  • завершение очереди

 

На каждом шаге или при возникновении ошибки функция SetupCommitFileQueue отправляет уведомление в подпрограмму обратного вызова. Подпрограмма обратного вызова может использовать сведения, отправленные очередью, для отслеживания хода установки и при необходимости взаимодействия с пользователем.

Например, если для операции копирования файла требуется исходный файл, который был недоступен по текущему пути, SetupCommitFileQueue отправит SPFILENOTIFY_NEEDMEDIA уведомление в подпрограмму обратного вызова вместе с информацией о необходимых файлах и носителях. Подпрограмма обратного вызова может использовать эти сведения для создания диалогового окна с запросом на вставку следующего диска путем вызова SetupPromptForDisk.

Подпрограмма обратного вызова очереди по умолчанию SetupDefaultQueueCallback входит в состав API установки. Эта подпрограмма обрабатывает уведомления об очередях и создает диалоговые окна ошибок и индикаторы выполнения для установки. Вы можете использовать подпрограмму обратного вызова очереди по умолчанию или написать процедуру обратного вызова фильтра для обработки подмножества уведомлений и передачи остальных в подпрограмму обратного вызова очереди по умолчанию.

Если ни одна из функций подпрограммы обратного вызова не соответствует вашим потребностям, вы можете написать автономную настраиваемую процедуру обратного вызова, которая не вызывает подпрограмму обратного вызова очереди по умолчанию.

Дополнительные сведения о подпрограммах обратного вызова очереди см. в разделах Подпрограмма обратного вызова очереди по умолчанию и Создание настраиваемой процедуры обратного вызова очереди.