INF CopyFiles-direktiv

Ett CopyFiles-direktiv kan göra något av följande:

  • Gör så att en enskild fil kopieras från källmediet till standardmålkatalogen.

  • Referera till ett eller flera INF-skrivardefinierade avsnitt i INF som var och en anger en lista över filer som ska kopieras från källmediet till målet.

[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]... 

Ett CopyFiles-direktiv kan anges i något av avsnitten som visas i den formella syntaxsatsen. Det här direktivet kan också anges i något av följande INF-avsnitt:

Varje namngivet avsnitt som refereras till av ett CopyFiles-direktiv har en eller flera poster i följande formulär:

[file-list-section]
destination-file-name[,[source-file-name][,[unused][,flag]]]
...

Ett INF-skrivardefinierat fil-listavsnitt kan ha valfritt antal poster, var och en på en separat rad.

Varje fil-list-avsnitt kan ha ett valfritt, associerat fil-list-section.security-avsnitt i följande formulär:

[file-list-section.security]
"security-descriptor-string"

Inlägg

destination-file-name
Anger namnet på målfilen. Om inget källfilnamn anges är den här specifikationen även namnet på källfilen.

source-file-name
Anger namnet på källfilen. Om käll- och målfilnamnen för filkopieringsåtgärden är desamma kan källfilnamn utelämnas.

oanvänd
Den här posten stöds inte längre i Windows 2000 och senare versioner av Windows.

flag
Dessa valfria flaggor, uttryckta i hexadecimal notation eller som ett decimalvärde i en avsnittspost, kan användas för att styra hur (eller om) en viss källfil kopieras till målet. Ett eller flera (ORed)-värden för följande systemdefinierade flaggor kan anges. Vissa av dessa flaggor är dock ömsesidigt uteslutande:

0x00000001 (COPYFLG_WARN_IF_SKIP)
Skicka en varning om användaren väljer att inte kopiera en fil. Den här flaggan och nästa är ömsesidigt uteslutande och båda är irrelevanta för INF-filer som är digitalt signerade.

0x00000002 (COPYFLG_NOSKIP)
Tillåt inte att användaren hoppar över att kopiera en fil. Den här flaggan är underförstådd om drivrutinspaketet är signerat.

0x00000004 (COPYFLG_NOVERSIONCHECK)
Ignorera filversioner och skriv över befintliga filer i målkatalogen. Den här flaggan och de följande två utesluter varandra. Den här flaggan är irrelevant för digitalt signerade INF-filer.

0x00000008 (COPYFLG_FORCE_FILE_IN_USE)
Framtvinga användningsbeteende för filer: kopiera inte över en befintlig fil med samma namn om den är öppen för närvarande. Kopiera i stället den angivna källfilen med ett tillfälligt namn så att den kan byta namn och användas när nästa omstart sker.

0x00000010 (COPYFLG_NO_OVERWRITE)
Ersätt inte en befintlig fil i målkatalogen med en källfil med samma namn. Den här flaggan kan inte kombineras med andra flaggor.

0x00000020 (COPYFLG_NO_VERSION_DIALOG)
Skriv inte över en fil i målkatalogen med källfilen om den befintliga filen är nyare än källfilen.

Den nyare kontrollen görs med hjälp av filversionen, som extraherats från VS_VERSIONINFO filversionsresursen. Mer information finns i Versionsinformation. Om målfilen inte är en körbar eller resursbild, eller om filen inte innehåller filversionsinformation, förutsätter enhetsinstallationen att målfilen är äldre.

0x00000040 (COPYFLG_OVERWRITE_OLDER_ONLY)
Kopiera källfilen till målkatalogen endast om filen på målet ersätts av en nyare version. Den här flaggan är irrelevant för digitalt signerade INF-filer. Versionskontrollen använder samma procedur som beskrivs ovan i COPYFLG_NO_VERSION_DIALOG.

0x00000400 (COPYFLG_REPLACEONLY)
Kopiera källfilen till målkatalogen endast om filen redan finns i målkatalogen.

0x00000800 (COPYFLG_NODECOMP) (Windows 7 och senare)
Kopiera källfilen till målkatalogen utan att expandera källfilen om den komprimeras.

0x00001000 (COPYFLG_REPLACE_BOOT_FILE)
Den här filen krävs av systeminläsaren. Systemet uppmanar användaren att starta om systemet.

0x00002000 (COPYFLG_NOPRUNE)
Ta inte bort den här åtgärden som ett resultat av optimeringen.

Till exempel kan Windows avgöra att filkopieringsåtgärden inte är nödvändig eftersom filen redan finns. Inf-skrivaren vet dock att åtgärden krävs och dirigerar Windows att åsidosätta dess optimering och utföra filåtgärden.

Den här flaggan kan användas för att säkerställa att filer kopieras om de också anges i ett INF DelFiles-direktiv eller ett INF RenFiles-direktiv .

0x00004000 (COPYFLG_IN_USE_RENAME)
Om källfilen inte kan kopieras eftersom målfilen används byter du namn på målfilen, kopierar källfilen till målfilen och tar bort målfilen. Om målfilen inte kan byta namn slutför du kopieringsåtgärden under nästa systemomstart. Om den namndöpta målfilen inte kan tas bort tar du bort målfilen som bytt namn under nästa omstart av systemet.

security-descriptor-string
Anger en säkerhetsbeskrivning som ska tillämpas på alla filer som kopieras av det namngivna avsnittet file-list-. Security-descriptor-string är en sträng med token som anger DACL-säkerhetskomponenten (D:).

Information om säkerhetsbeskrivningssträngar finns i Security Descriptor Definition Language (Windows).

Om inget fil-list-section.security-avsnitt har angetts ärver filerna säkerhetsegenskaperna för katalogen som filerna kopieras till.

Om ett file-list-section.security-avsnitt har angetts måste följande ACE inkluderas så att installationer och uppgraderingar av enheter och systemtjänstpaket kan ske:

  • (A;; GA;;; SY) − Beviljar all åtkomst till det lokala systemet.

  • (A;; GA;;; BA) − Beviljar all åtkomst till inbyggda administratörer.

Ange inte ACE-strängar som ger skrivåtkomst till icke-privilegierade användare.

Mer information om hur du anger säkerhetsbeskrivningar finns i Skapa säkra enhetsinstallationer.

Remarks

Windows kopierar bara ett drivrutinspaket till målplatsen som en del av en drivrutinsinstallation om filen har ett INF CopyFiles-direktiv. När det kopierar filer genererar operativsystemet automatiskt tillfälliga filnamn vid behov och byter namn på de kopierade källfilerna nästa gång operativsystemet startas.

INF-filskrivaren måste också ange sökvägsspecifikationer för filer som kopieras från källmedia med hjälp av avsnittet INF SourceDisksNames och AVSNITTET INF SourceDisksFiles för att uttryckligen ange sökvägen till varje källfil i förhållande till INF-filen i källmediet.

Målet för kopieringsåtgärder styrs av avsnittet INF DestinationDirs. Det här avsnittet styr målet för alla filkopieringsåtgärder enligt följande:

  • Om ett namngivet avsnitt som refereras till av ett CopyFiles-direktiv har en motsvarande post i avsnittet DestinationDirs i samma INF anger den posten uttryckligen målkatalogen till vilken alla filer som visas i det namngivna avsnittet kopieras. Om det namngivna avsnittet inte visas i avsnittet DestinationDirs använder Windows posten DefaultDestDir i avsnittet DestinationDirs i INF-filen.

  • Om ett CopyFiles-direktiv använder filnamnssyntaxen @ använder Windows posten DefaultDestDir i avsnittet DestinationDirs i INF-filen.

Följande punkter gäller för INF CopyFiles-direktivet :

  • Varje fil-list-avsnittsnamn måste vara unikt för INF-filen, men det kan refereras till av CopyFiles-, DelFiles- eller RenFiles-direktiv någon annanstans i samma INF-fil. Avsnittsnamnet måste följa de allmänna regler som beskrivs i Allmänna syntaxregler för INF-filer.

  • Filnamn som anges i antingen @filnamns - eller fillistans avsnittsposter måste vara det exakta namnet på en fil på källmediet. Du kan inte använda en %strkey -% token för att ange filnamnet. Mer information om %strkey -% token finns i avsnittet INF-strängar.

  • CopyFiles-direktivet stöder inte att ett fillisteavsnittsnamn dekoreras med ett systemdefinierat plattformstillägg (.nt, .ntx86, .ntia64 eller .ntamd64).

  • Använd inte CopyFiles-direktiv för att kopiera INF-filer. Mer information finns i Kopiera INF-filer.

Från och med Windows Vista gäller följande punkter även för INF CopyFiles-direktivet:

  • När ett drivrutinspaket mellanlagras i drivrutinsarkivet kopieras en fil endast från drivrutinspaketkällan till drivrutinsarkivet om filen har ett motsvarande INF CopyFiles-direktiv .

  • Som en del av en Windows uppgradering kopierar Windows endast en drivrutinspaketfil till drivrutinsarkivet som en del av en drivrutinsmigrering om filen har ett INF CopyFiles-direktiv.

Examples

Det här exemplet visar hur avsnitten SourceDisksNames, SourceDisksFiles och DestinationDirs anger sökvägarna för kopieringsfilåtgärder som utförs vid bearbetning av en enkel INF för enhetsdrivrutiner.

[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
; ...

Ytterligare exempel på hur du använder INF CopyFiles-direktivet finns i INF-filerna för enhetsdrivrutinsexemplen som ingår i src-katalogen för Windows-drivrutinspaket (WDK).

Se även

Lägg tillInterface

ClassInstall32

DDInstall

DDInstall. Gränssnitt

DelFiles

DestinationDirs

InterfaceInstall32

RenFiles

SourceDisksFiles

SourceDisksNames

Strängar

Version