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


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

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

 

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

 

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

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

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

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

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