Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma diretiva CopyFiles pode fazer qualquer uma das seguintes opções:
Faz com que um único ficheiro seja copiado do meio de origem para o diretório de destino predefinido.
Faça referência a uma ou mais secções definidas por INF-writer no INF, cada uma especificando uma lista de ficheiros a serem copiados do meio de origem para o destino.
[DDInstall] |
[DDInstall.CoInstallers] |
[ClassInstall32] |
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)
CopyFiles=@filename | file-list-section[, file-list-section]...
Uma diretiva CopyFiles pode ser especificada em qualquer uma das secções apresentadas na declaração de sintaxe formal. Esta diretiva pode também ser especificada em qualquer uma das seguintes secções INF:
Uma secção de interface adicional referenciada pela diretiva INF AddInterface num DDInstall. Secção de interfaces .
Uma secção de interface de instalação referenciada numa secção INF InterfaceInstall32
Cada secção nomeada referenciada por uma diretiva CopyFiles tem uma ou mais entradas do seguinte formulário:
[file-list-section]
destination-file-name[,[source-file-name][,[unused][,flag]]]
...
Uma secção de lista de ficheiros definida por um escritor INF pode ter qualquer número de entradas, cada uma numa linha separada.
Cada secção de lista de ficheiros pode ter uma secção opcional associada de lista-deficheiros.security do seguinte formulário:
[file-list-section.security]
"security-descriptor-string"
Entradas
nome do ficheiro-destino-de-destino
Especifica o nome do ficheiro de destino. Se não for fornecido o nome do ficheiro fonte , esta especificação é também o nome do ficheiro fonte.
source-file-name
Especifica o nome do ficheiro fonte. Se os nomes dos ficheiros de origem e destino para a operação de cópia forem os mesmos, o nome do ficheiro fonte pode ser omitido.
não utilizados
Esta entrada já não é suportada no Windows 2000 e versões posteriores do Windows.
flag
Estas bandeiras opcionais, expressas em notação hexadecimal ou como valor decimal numa entrada de secção, podem ser usadas para controlar como (ou se) um determinado ficheiro fonte é copiado para o destino. Podem ser especificados um ou mais valores (ORed) para as seguintes bandeiras definidas pelo sistema. No entanto, algumas destas bandeiras são mutuamente exclusivas:
0x00000001 (COPYFLG_WARN_IF_SKIP)
Envie um aviso se o utilizador optar por não copiar um ficheiro. Esta bandeira e a seguinte são mutuamente exclusivas, e ambas são irrelevantes para ficheiros INF assinados digitalmente.
0x00000002 (COPYFLG_NOSKIP)
Não permita que o utilizador ignore a cópia de um ficheiro. Esta bandeira está implícita se o pacote do motorista estiver assinado.
0x00000004 (COPYFLG_NOVERSIONCHECK)
Ignore as versões dos ficheiros e escreva por cima dos ficheiros existentes no diretório de destino. Esta bandeira e as duas seguintes são mutuamente exclusivas. Este flag é irrelevante para ficheiros INF assinados digitalmente.
0x00000008 (COPYFLG_FORCE_FILE_IN_USE)
Forçar o comportamento de utilização de ficheiros: não copie um ficheiro existente com o mesmo nome se estiver atualmente aberto. Em vez disso, copie o ficheiro-fonte dado com um nome temporário para que possa ser renomeado e usado quando ocorrer o próximo reinício.
0x00000010 (COPYFLG_NO_OVERWRITE)
Não substitua um ficheiro existente no diretório de destino por um ficheiro de origem com o mesmo nome. Esta bandeira não pode ser combinada com nenhuma outra bandeira.
0x00000020 (COPYFLG_NO_VERSION_DIALOG)
Não escreva sobre um ficheiro no diretório de destino com o ficheiro fonte se o ficheiro existente for mais recente do que o ficheiro fonte.
A verificação mais recente é feita usando a versão do ficheiro, extraída do recurso VS_VERSIONINFO versão do ficheiro. Para mais informações, consulte Informação da Versão. Se o ficheiro de destino não for um executável ou imagem de recurso, ou se o ficheiro não contiver informação de versão do ficheiro, a instalação do dispositivo assume que o ficheiro de destino é mais antigo.
0x00000040 (COPYFLG_OVERWRITE_OLDER_ONLY)
Copie o ficheiro fonte para o diretório de destino apenas se o ficheiro no destino for substituído por uma versão mais recente. Este flag é irrelevante para ficheiros INF assinados digitalmente. A verificação de versões utiliza o mesmo procedimento descrito acima em COPYFLG_NO_VERSION_DIALOG.
0x00000400 (COPYFLG_REPLACEONLY)
Copie o ficheiro fonte para o diretório de destino apenas se o ficheiro já estiver presente no diretório de destino.
0x00000800 (COPYFLG_NODECOMP) (Windows 7 e posteriores)
Copie o ficheiro fonte para a pasta de destino sem descomprimir o ficheiro fonte se estiver comprimido.
0x00001000 (COPYFLG_REPLACE_BOOT_FILE)
Este ficheiro é exigido pelo carregador do sistema. O sistema irá pedir ao utilizador para reiniciar o sistema.
0x00002000 (COPYFLG_NOPRUNE)
Não apague esta operação devido à otimização.
Por exemplo, o Windows pode determinar que a operação de cópia de ficheiros não é necessária porque o ficheiro já existe. No entanto, o autor do INF sabe que a operação é necessária e orienta o Windows a sobrepor a sua otimização e a realizar a operação do ficheiro.
Esta flag pode ser usada para garantir que os ficheiros são copiados se também forem especificados numa diretiva INF DelFiles ou numa diretiva INF RenFiles .
0x00004000 (COPYFLG_IN_USE_RENAME)
Se o ficheiro fonte não puder ser copiado porque o ficheiro de destino está a ser utilizado, renomeie o ficheiro de destino, depois copie o ficheiro fonte para o ficheiro de destino e elimine o ficheiro de destino renomeado. Se o ficheiro de destino não puder ser renomeado, completar a operação de cópia durante o próximo reinício do sistema. Se o ficheiro de destino renomeado não puder ser eliminado, elimine o ficheiro de destino renomeado durante o próximo reinício do sistema.
security-descriptor-string
Especifica um descritor de segurança, a ser aplicado a todos os ficheiros copiados pela secção de lista de ficheiros nomeada. A cadeia de descrição de segurança é uma cadeia com tokens para indicar o componente de segurança DACL (D:).
Para informações sobre cadeias de descritores de segurança, consulte Security Descriptor Definition Language (Windows).
Se uma secção file-list-section.security não for especificada, os ficheiros herdam as características de segurança do diretório para onde os ficheiros são copiados.
Se for especificada uma secção file-list-section.security, os seguintes ACE's devem ser incluídos para que possam ocorrer instalações e atualizações de dispositivos e pacotes de serviço do sistema:
(A;; GA;;; SY) − Concede todo o acesso ao sistema local.
(A;; GA;;; BA) − Concede todo o acesso a administradores incorporados.
Não especifique cadeias ACE que concedam acesso de escrita a utilizadores não privilegiados.
Para mais informações sobre como especificar descritores de segurança, consulte Criação de Instalações Seguras de Dispositivos.
Remarks
O Windows só copia um pacote de drivers para a sua localização de destino como parte de uma instalação de driver se o ficheiro tiver uma diretiva INF CopyFiles. Quando copia ficheiros, o sistema operativo gera automaticamente nomes temporários de ficheiros, quando necessário, e renomeia os ficheiros fonte copiados na próxima vez que o sistema operativo for iniciado.
O gravador de ficheiros INF deve também fornecer especificações de caminho para ficheiros copiados de suportes fonte, utilizando a secção INF SourceDisksNames e a secção INF SourceDisksFiles para especificar explicitamente o caminho de cada ficheiro fonte relativamente ao ficheiro INF no suporte de origem.
O destino das operações de cópia é controlado pela secção INF DestinationDirs. Esta secção controla o destino para todas as operações de cópia de ficheiros, da seguinte forma:
Se uma secção nomeada referenciada por uma diretiva CopyFiles tiver uma entrada correspondente na secção DestinationDirs do mesmo INF, essa entrada especifica explicitamente o diretório de destino para onde todos os ficheiros listados na secção nomeada são copiados. Se a secção nomeada não estiver listada na secção DestinationDirs, o Windows utiliza a entrada DefaultDestDir na secção DestinationDirs do ficheiro INF.
Se uma diretiva CopyFiles usar a @ sintaxe do nome do ficheiro, o Windows usa a entrada DefaultDestDir na secção DestinationDirs do ficheiro INF.
Os seguintes pontos aplicam-se à diretiva INF CopyFiles :
Cada nome de secção de lista de ficheiros deve ser único para o ficheiro INF, mas pode ser referenciado por diretivas CopyFiles, DelFiles ou RenFiles noutros locais do mesmo ficheiro INF. O nome da secção deve seguir as regras gerais descritas nas Regras Gerais de Sintaxe para Ficheiros INF.
Os nomes dos ficheiros especificados nas @entradas do nome do ficheiro ou na secção da lista de ficheiros devem ser o nome exato de um ficheiro no meio de origem. Não podes usar um token% %strkey para especificar o nome do ficheiro. Para mais informações sobre %tokens strkey%, consulte a Secção INF Strings.
A diretiva CopyFiles não suporta decorar um nome de secção de lista de ficheiros com uma extensão de plataforma definida pelo sistema (.nt, .ntx86, .ntia64 ou .ntamd64).
Não use diretivas CopyFiles para copiar ficheiros INF. Para mais informações, consulte Copiar Ficheiros INF.
A partir do Windows Vista, os seguintes pontos também se aplicam à diretiva INF CopyFiles:
Quando um pacote de drivers está em estágio na loja de drivers, um ficheiro só é copiado da fonte do pacote de drivers para a loja de drivers se o ficheiro tiver uma diretiva INF CopyFiles correspondente.
Como parte de uma atualização ao Windows, o Windows só copia um ficheiro de pacote de drivers para a loja de drivers como parte de uma migração de drivers se o ficheiro tiver uma diretiva INF CopyFiles.
Examples
Este exemplo mostra como as secções SourceDisksNames, SourceDisksFiles e DestinationDirs especificam os caminhos para operações de copiar ficheiros que ocorrem no processamento de um INF simples de driver de dispositivo.
[SourceDisksNames]
1 = %Floppy_Description%,,,\WinNT
[SourceDisksFiles.x86]
aha154x.sys = 2,\x86 ; on distribution disk 2, in subdir \WinNT\x86
[DestinationDirs]
DefaultDestDir = 13
; ... Manufacturer and Models sections omitted here
[AHA154X.NTx86]
CopyFiles=@AHA154x.SYS
; ... some other directives and sections omitted here
; ...
Para exemplos adicionais de como usar a diretiva INF CopyFiles, consulte os ficheiros INF para os exemplos de drivers de dispositivo que estão incluídos no diretório src do Windows Driver Kit (WDK).