INF CopyFiles-instructie

Een CopyFiles-instructie kan een van de volgende handelingen uitvoeren:

  • Ervoor zorgen dat één bestand wordt gekopieerd van de bronmedia naar de standaardbestemmingsmap.

  • Verwijs naar een of meer inF-schrijver gedefinieerde secties in de INF die elk een lijst met bestanden specificeren die van de bronmedia naar de bestemming moeten worden gekopieerd.

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

Een CopyFiles-instructie kan worden opgegeven in een van de secties die worden weergegeven in de formele syntaxisinstructie. Deze richtlijn kan ook worden opgegeven in een van de volgende INF-secties:

Elke benoemde sectie waarnaar wordt verwezen door een CopyFiles-instructie heeft een of meer vermeldingen van het volgende formulier:

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

Een inF-schrijver gedefinieerde bestandslijstsectie kan een willekeurig aantal vermeldingen bevatten, elk op een afzonderlijke regel.

Elke bestandslijstsectie kan een optionele, gekoppelde sectie file-list-section.security van het volgende formulier hebben:

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

Invoer

destination-file-name
Hiermee geeft u de naam van het doelbestand. Als er geen bronbestandsnaam wordt opgegeven, is deze specificatie ook de naam van het bronbestand.

bronbestandsnaam
Hiermee geeft u de naam van het bronbestand. Als de bron- en doelbestandsnamen voor de bestandskopiebewerking hetzelfde zijn, kan de bronbestandsnaam worden weggelaten.

ongebruikt
Deze vermelding wordt niet meer ondersteund in Windows 2000 en nieuwere versies van Windows.

flag
Deze optionele vlaggen, uitgedrukt in hexadecimale notatie of als een decimale waarde in een sectievermelding, kunnen worden gebruikt om te bepalen hoe (of) een bepaald bronbestand naar de bestemming wordt gekopieerd. Een of meer (ORed)-waarden voor de volgende door het systeem gedefinieerde vlaggen kunnen worden opgegeven. Sommige van deze vlaggen sluiten elkaar echter wederzijds uit:

0x00000001 (COPYFLG_WARN_IF_SKIP)
Een waarschuwing verzenden als de gebruiker ervoor kiest een bestand niet te kopiëren. Deze vlag en de volgende zijn wederzijds exclusief, en beide zijn niet relevant voor INF-bestanden die digitaal zijn ondertekend.

0x00000002 (COPYFLG_NOSKIP)
Sta de gebruiker niet toe om het kopiëren van een bestand over te slaan. Deze vlag wordt geïmpliceerd als het stuurprogrammapakket is ondertekend.

0x00000004 (COPYFLG_NOVERSIONCHECK)
Negeer bestandsversies en schrijf over bestaande bestanden in de doelmap. Deze vlag en de volgende twee sluiten elkaar wederzijds uit. Deze vlag is niet relevant voor digitaal ondertekende INF-bestanden.

0x00000008 (COPYFLG_FORCE_FILE_IN_USE)
Gedrag van bestand in gebruik afdwingen: kopieer niet over een bestaand bestand met dezelfde naam als het momenteel is geopend. Kopieer in plaats daarvan het opgegeven bronbestand met een tijdelijke naam, zodat de naam ervan kan worden gewijzigd en gebruikt wanneer de volgende herstart plaatsvindt.

0x00000010 (COPYFLG_NO_OVERWRITE)
Vervang een bestaand bestand in de doelmap niet door een bronbestand met dezelfde naam. Deze vlag kan niet worden gecombineerd met andere vlaggen.

0x00000020 (COPYFLG_NO_VERSION_DIALOG)
Schrijf niet over een bestand in de doelmap met het bronbestand als het bestaande bestand nieuwer is dan het bronbestand.

De nieuwere controle wordt uitgevoerd met behulp van de bestandsversie, zoals geëxtraheerd uit de VS_VERSIONINFO bestandsversieresource. Zie Versiegegevens voor meer informatie. Als het doelbestand geen uitvoerbare of broninstallatiekopieën is of als het bestand geen bestandsversiegegevens bevat, wordt ervan uitgegaan dat het doelbestand ouder is.

0x00000040 (COPYFLG_OVERWRITE_OLDER_ONLY)
Kopieer het bronbestand alleen naar de doelmap als het bestand op de bestemming wordt vervangen door een nieuwere versie. Deze vlag is niet relevant voor digitaal ondertekende INF-bestanden. De versiecontrole maakt gebruik van dezelfde procedure als die hierboven wordt beschreven in COPYFLG_NO_VERSION_DIALOG.

0x00000400 (COPYFLG_REPLACEONLY)
Kopieer het bronbestand alleen naar de doelmap als het bestand al aanwezig is in de doelmap.

0x00000800 (COPYFLG_NODECOMP) (Windows 7 en hoger)
Kopieer het bronbestand naar de doelmap zonder het bronbestand te decomprimeren als het is gecomprimeerd.

0x00001000 (COPYFLG_REPLACE_BOOT_FILE)
Dit bestand is vereist voor het systeemlaadprogramma. Het systeem vraagt de gebruiker om het systeem opnieuw op te starten.

0x00002000 (COPYFLG_NOPRUNE)
Verwijder deze bewerking niet als gevolg van optimalisatie.

Windows kan bijvoorbeeld bepalen dat de kopieerbewerking van het bestand niet nodig is omdat het bestand al bestaat. De schrijver van de INF weet echter dat de bewerking is vereist en stuurt Windows om de optimalisatie te overschrijven en de bestandsbewerking uit te voeren.

Deze vlag kan worden gebruikt om ervoor te zorgen dat bestanden worden gekopieerd als ze ook zijn opgegeven in een INF DelFiles-instructie of een INF RenFiles-instructie .

0x00004000 (COPYFLG_IN_USE_RENAME)
Als het bronbestand niet kan worden gekopieerd omdat het doelbestand wordt gebruikt, wijzigt u de naam van het doelbestand, kopieert u het bronbestand naar het doelbestand en verwijdert u het hernoemde doelbestand. Als de naam van het doelbestand niet kan worden gewijzigd, voltooit u de kopieerbewerking tijdens het volgende systeem opnieuw opstarten. Als het hernoemde doelbestand niet kan worden verwijderd, verwijdert u het hernoemde doelbestand tijdens het volgende systeem opnieuw opstarten.

security-descriptor-string
Hiermee geeft u een beveiligingsdescriptor op die moet worden toegepast op alle bestanden die zijn gekopieerd door de benoemde bestandslijstsectie. De security-descriptor-string is een tekenreeks met tokens om het DACL-beveiligingsonderdeel (D:) aan te geven.

Zie Security Descriptor Definition Language (Windows) voor informatie over beveiligingsdescriptortekenreeksen.

Als een sectie file-list-section.security niet is opgegeven, nemen bestanden de beveiligingskenmerken over van de map waarin de bestanden worden gekopieerd.

Als er een sectie file-list-section.security is opgegeven, moeten de volgende ACE's worden opgenomen, zodat installaties en upgrades van apparaten en systeemservicepacks kunnen optreden:

  • (A;; GA;;; SY) – verleent alle toegang tot het lokale systeem.

  • (A;; GA;;; BA) − verleent alle toegang tot ingebouwde beheerders.

Geef geen ACE-tekenreeksen op die schrijftoegang verlenen aan niet-gemachtigde gebruikers.

Zie Beveiligde apparaatinstallaties maken voor meer informatie over het opgeven van beveiligingsdescriptors.

Remarks

Windows alleen een stuurprogrammapakket naar de doellocatie kopieert als onderdeel van een installatie van een stuurprogramma als het bestand een INF CopyFiles-instructie heeft. Wanneer bestanden worden gekopieerd, genereert het besturingssysteem automatisch tijdelijke bestandsnamen, indien nodig en wijzigt het de naam van de gekopieerde bronbestanden de volgende keer dat het besturingssysteem wordt gestart.

De INF-bestandsschrijver moet ook padspecificaties opgeven voor bestanden die zijn gekopieerd van bronmedia met behulp van de sectie INF SourceDisksNames en de sectie INF SourceDisksFiles om expliciet het pad op te geven van elk bronbestand ten opzichte van het INF-bestand in de bronmedia.

Het doel van kopieerbewerkingen wordt bepaald door de sectie INF DestinationDirs. In deze sectie wordt de bestemming voor alle bestandskopiebewerkingen als volgt beheerd:

  • Als een benoemde sectie waarnaar wordt verwezen door een CopyFiles-instructie een bijbehorende vermelding heeft in de sectie DestinationDirs van hetzelfde INF, geeft die vermelding expliciet de doellocatiemap aan waarin alle bestanden die in de benoemde sectie worden vermeld, worden gekopieerd. Als de benoemde sectie niet wordt vermeld in de sectie DestinationDirs, gebruikt Windows de vermelding DefaultDestDir in de sectie DestinationDirs van het INF-bestand.

  • Als een CopyFiles-instructie de syntaxis van de @bestandsnaam gebruikt, gebruikt Windows de vermelding DefaultDestDir in de sectie DestinationDirs van het INF-bestand.

De volgende punten zijn van toepassing op de INSTRUCTIE INF CopyFiles :

  • Elke bestandslijst-sectienaam moet uniek zijn voor het INF-bestand, maar kan worden verwezen door de instructies CopyFiles, DelFiles of RenFiles elders in hetzelfde INF-bestand. De sectienaam moet voldoen aan de algemene regels die worden beschreven in algemene syntaxisregels voor INF-bestanden.

  • Bestandsnamen die zijn opgegeven in de @bestandsnaam - of bestandslijstsectievermeldingen moeten de exacte naam van een bestand op de bronmedia zijn. U kunt geen %strkey% token gebruiken om de bestandsnaam op te geven. Zie de sectie INF-tekenreeksen voor meer informatie over %strkey% tokens.

  • De CopyFiles-instructie biedt geen ondersteuning voor het decoreren van een bestandsnaamlijstsectie met een door het systeem gedefinieerde platformextensie (.nt, .ntx86, .ntia64 of .ntamd64).

  • Gebruik geen CopyFiles-instructies om INF-bestanden te kopiëren. Zie INF-bestanden kopiëren voor meer informatie.

Vanaf Windows Vista zijn de volgende punten ook van toepassing op de INSTRUCTIE INF CopyFiles:

  • Wanneer een stuurprogrammapakket is gefaseerd in het stuurprogrammaarchief, wordt een bestand alleen gekopieerd van de bron van het stuurprogrammapakket naar het stuurprogrammaarchief als het bestand een bijbehorende INF CopyFiles-instructie heeft.

  • Als onderdeel van een Windows upgrade kopieert Windows alleen een stuurprogrammapakketbestand naar het stuurprogrammaarchief als onderdeel van een stuurprogrammamigratie als het bestand een INF CopyFiles-instructie heeft.

Examples

In dit voorbeeld ziet u hoe in de secties SourceDisksNames, SourceDisksFiles en DestinationDirs de paden worden opgegeven voor kopieerbestandsbewerkingen die optreden bij het verwerken van een eenvoudig INF-stuurprogramma van het apparaat.

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

Zie de INF-bestanden voor de voorbeelden van apparaatstuurprogramma's die zijn opgenomen in de src-map van de Windows Driver Kit (WDK) voor aanvullende voorbeelden van het gebruik van de INSTRUCTIE INF CopyFiles.

Zie ook

AddInterface

ClassInstall32

DDInstall

DDInstall. Interfaces

DelFiles

DestinationDirs

InterfaceInstall32

RenFiles

SourceDisksFiles

SourceDisksNames

Tekenreeksen

Versie