Ordem do Compromisso de Fila
Quando a função SetupCommitFileQueue confirma a fila de arquivos, ela processa as operações de arquivo na seguinte ordem: operações de exclusão de arquivo, operações de renomeação de arquivo e, por fim, operações de cópia de arquivo. A estrutura de tópicos a seguir ilustra o ciclo de vida do processo de compromisso de uma fila.
- iniciar a subconsulta de exclusão
- iniciar uma operação de exclusão de arquivo <-- repita para cada
- concluir uma operação de exclusão de arquivo <-- exclusão de arquivo na fila
- concluir a subconsulta de exclusão
- iniciar a subconsulta de renomeação
- iniciar uma operação de renomeação de arquivo <-- repita para cada
- concluir uma operação de exclusão de arquivo <-- renomeação de arquivo na fila
- concluir a subconsulta de renomeação
- iniciar a subconsulta de cópia
- iniciar uma operação de cópia de arquivo <-- repita para cada
- concluir uma operação de cópia de arquivo <-- cópia de arquivo na fila
- concluir a subconsulta de cópia
- concluir a fila
Em cada etapa ou se ocorrer um erro, a função SetupCommitFileQueue envia uma notificação para a rotina de retorno de chamada. A rotina de retorno de chamada pode usar as informações enviadas pela fila para acompanhar o progresso da instalação e, se necessário, interagir com o usuário.
Por exemplo, se uma operação de cópia de arquivo precisasse de um arquivo de origem que não estivesse disponível no caminho atual, SetupCommitFileQueue enviaria uma notificação SPFILENOTIFY_NEEDMEDIA para a rotina de retorno de chamada, juntamente com informações sobre o arquivo e a mídia necessárias. A rotina de retorno de chamada pode usar essas informações para gerar uma caixa de diálogo que solicita que o usuário insira o próximo disco chamando SetupPromptForDisk
Uma rotina de retorno de chamada de fila padrão, SetupDefaultQueueCallback, está incluída na API de Instalação. Essa rotina lida com notificações de fila e gera caixas de diálogo de erro e barras de progresso para a instalação. Você pode usar a rotina de retorno de chamada de fila padrão como ela é, ou gravar uma rotina de retorno de chamada de filtro para lidar com um subconjunto das notificações e passar as outras para a rotina de retorno de chamada de fila padrão.
Se nenhuma das funcionalidades da rotina de retorno de chamada atender às suas necessidades, você poderá escrever uma rotina de retorno de chamada personalizada autocontida que não chame a rotina de retorno de chamada de fila padrão.
Para obter mais informações sobre rotinas de retorno de chamada de fila, consulte padrão de rotina de retorno de chamada de fila e Criando uma rotina de retorno de chamada de fila personalizada.