INF CopyFiles 지시문

CopyFiles 지시문은 다음 중 하나를 수행할 수 있습니다.

  • 원본 미디어에서 기본 대상 디렉터리로 단일 파일을 복사합니다.

  • 원본 미디어에서 대상으로 복사할 파일 목록을 각각 지정하는 INF에서 하나 이상의 INF 기록기 정의 섹션을 참조합니다.

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

CopyFiles 지시문은 공식 구문 문에 표시된 섹션 내에서 지정할 수 있습니다. 이 지시문은 다음 INF 섹션 내에서도 지정할 수 있습니다.

CopyFiles 지시문에서 참조하는 명명된 각 섹션에는 다음 양식의 항목이 하나 이상 있습니다.

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

INF-writer-defined file-list-section 에는 각각 별도의 줄에 있는 여러 항목이 있을 수 있습니다.

file-list-section에는 다음 양식의 선택적 연결된 file-list-section.security 섹션이 있을 수 있습니다.

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

항목

destination-file-name
대상 파일의 이름을 지정합니다. source-file-name이 지정되지 않은 경우 이 사양은 원본 파일의 이름이기도 합니다.

source-file-name
원본 파일의 이름을 지정합니다. 파일 복사 작업의 원본 및 대상 파일 이름이 동일한 경우 source-file-name 을 생략할 수 있습니다.

하지 않는
이 항목은 Windows 2000 이상 버전의 Windows에서 더 이상 지원되지 않습니다.

flag
16진수 표기법으로 표현되거나 섹션 항목의 10진수 값으로 표현되는 이러한 선택적 플래그를 사용하여 특정 원본 파일이 대상에 복사되는 방법(또는 여부)을 제어할 수 있습니다. 다음 시스템 정의 플래그에 대한 하나 이상의 ORed 값을 지정할 수 있습니다. 그러나 이러한 플래그 중 일부는 상호 배타적입니다.

0x00000001 (COPYFLG_WARN_IF_SKIP)
사용자가 파일을 복사하지 않기로 선택한 경우 경고를 보냅니다. 이 플래그와 다음 플래그는 함께 사용할 수 없으며 둘 다 디지털 서명된 INF 파일과 관련이 없습니다.

0x00000002 (COPYFLG_NOSKIP)
사용자가 파일 복사를 건너뛰도록 허용하지 않습니다. 이 플래그는 드라이버 패키지 에 서명된 경우 암시됩니다.

0x00000004 (COPYFLG_NOVERSIONCHECK)
파일 버전을 무시하고 대상 디렉터리의 기존 파일에 대해 씁니다. 이 플래그와 다음 두 플래그는 상호 배타적입니다. 이 플래그는 디지털 서명된 INF 파일과 관련이 없습니다.

0x00000008 (COPYFLG_FORCE_FILE_IN_USE)
사용 중인 파일 강제 동작: 현재 열려 있는 경우 동일한 이름의 기존 파일을 복사하지 마세요. 대신, 다음 다시 시작할 때 이름을 바꾸고 사용할 수 있도록 지정된 원본 파일을 임시 이름으로 복사합니다.

0x00000010 (COPYFLG_NO_OVERWRITE)
대상 디렉터리의 기존 파일을 같은 이름의 원본 파일로 바꾸지 마세요. 이 플래그는 다른 플래그와 결합할 수 없습니다.

0x00000020 (COPYFLG_NO_VERSION_DIALOG)
기존 파일이 원본 파일보다 최신인 경우 원본 파일을 사용하여 대상 디렉터리의 파일을 작성하지 마세요.

VS_VERSIONINFO 파일 버전 리소스에서 추출된 대로 최신 검사 파일 버전을 사용하여 수행됩니다. 자세한 내용은 버전 정보를 참조하세요. 대상 파일이 실행 파일 또는 리소스 이미지가 아니거나 파일에 파일 버전 정보가 없는 경우 디바이스 설치는 대상 파일이 이전 파일이라고 가정합니다.

0x00000040 (COPYFLG_OVERWRITE_OLDER_ONLY)
대상의 파일이 최신 버전으로 대체된 경우에만 원본 파일을 대상 디렉터리에 복사합니다. 이 플래그는 디지털 서명된 INF 파일과 관련이 없습니다. 버전 검사 COPYFLG_NO_VERSION_DIALOG 위에서 설명한 것과 동일한 절차를 사용합니다.

0x00000400 (COPYFLG_REPLACEONLY)
파일이 대상 디렉터리에 이미 있는 경우에만 원본 파일을 대상 디렉터리에 복사합니다.

0x00000800 (COPYFLG_NODECOMP)(Windows 7 이상)
압축된 경우 원본 파일을 압축 해제하지 않고 원본 파일을 대상 디렉터리에 복사합니다.

0x00001000 (COPYFLG_REPLACE_BOOT_FILE)
이 파일은 시스템 로더에 필요합니다. 시스템에서 사용자에게 시스템을 다시 시작하라는 메시지를 표시합니다.

0x00002000 (COPYFLG_NOPRUNE)
최적화의 결과로 이 작업을 삭제하지 마세요.

예를 들어 파일이 이미 있으므로 Windows에서 파일 복사 작업이 필요하지 않다고 판단할 수 있습니다. 그러나 INF의 작성기는 작업이 필요하다는 것을 알고 있으며 Windows에서 최적화를 재정의하고 파일 작업을 수행하도록 지시합니다.

이 플래그는 INF DelFiles 지시문 또는 INF RenFiles 지시문에도 지정된 경우 파일이 복사되도록 하는 데 사용할 수 있습니다.

0x00004000 (COPYFLG_IN_USE_RENAME)
대상 파일을 사용 중이므로 원본 파일을 복사할 수 없는 경우 대상 파일의 이름을 바꾼 다음 원본 파일을 대상 파일에 복사한 다음 이름이 바뀐 대상 파일을 삭제합니다. 대상 파일의 이름을 바꿀 수 없는 경우 다음 시스템을 다시 시작하는 동안 복사 작업을 완료합니다. 이름이 바뀐 대상 파일을 삭제할 수 없는 경우 다음 시스템을 다시 시작하는 동안 이름이 변경된 대상 파일을 삭제합니다.

security-descriptor-string
명명된 file-list-section에서 복사한 모든 파일에 적용할 보안 설명자를 지정합니다. security-descriptor-string은 DACL(D:) 보안 구성 요소를 나타내는 토큰이 있는 문자열입니다.

보안 설명자 문자열에 대한 자세한 내용은 보안 설명자 정의 언어(Windows)를 참조하세요.

file-list-section.security 섹션을 지정하지 않으면 파일이 복사되는 디렉터리의 보안 특성을 상속합니다.

file-list-section.security 섹션을 지정한 경우 디바이스 및 시스템 서비스 팩의 설치 및 업그레이드가 발생할 수 있도록 다음 ACE를 포함해야 합니다.

  • (A;; 조지아;;; SY) - 로컬 시스템에 대한 모든 액세스 권한을 부여합니다.

  • (A;; 조지아;;; BA) - 기본 제공 관리자에게 모든 액세스 권한을 부여합니다.

권한이 없는 사용자에게 쓰기 권한을 부여하는 ACE 문자열을 지정하지 마세요.

보안 설명자를 지정하는 방법에 대한 자세한 내용은 보안 디바이스 설치 만들기를 참조하세요.

설명

Windows는 파일에 INF CopyFiles 지시문이 있는 경우에만 드라이버 설치의 일부로 드라이버 패키지를 대상 위치에 복사합니다. 파일을 복사하면 운영 체제는 필요한 경우 임시 파일 이름을 자동으로 생성하고 다음에 운영 체제가 시작될 때 복사된 원본 파일의 이름을 바꿉니다.

또한 INF 파일 작성기는 INF SourceDisksNames 섹션 및 INF SourceDisksFiles 섹션을 사용하여 원본 미디어에서 복사된 파일에 대한 경로 사양을 제공하여 원본 미디어의 INF 파일을 기준으로 각 소스 파일의 경로를 명시적으로 지정해야 합니다.

복사 작업의 대상은 INF DestinationDirs 섹션에 의해 제어됩니다. 이 섹션에서는 다음과 같이 모든 파일 복사 작업의 대상을 제어합니다.

  • CopyFiles 지시문에서 참조하는 명명된 섹션에 동일한 INF의 DestinationDirs 섹션에 해당 항목이 있는 경우 해당 항목은 명명된 섹션에 나열된 모든 파일이 복사되는 대상 대상 디렉터리를 명시적으로 지정합니다. 명명된 섹션이 DestinationDirs 섹션에 나열되지 않은 경우 Windows는 INF 파일의 DestinationDirs 섹션에 있는 DefaultDestDir 항목을 사용합니다.

  • CopyFiles 지시문이 @파일 이름 구문을 사용하는 경우 Windows는 INF 파일의 DestinationDirs 섹션에 있는 DefaultDestDir 항목을 사용합니다.

다음 점은 INF CopyFiles 지시문에 적용됩니다.

  • 모든 file-list-section 이름은 INF 파일에 고유해야 하지만 동일한 INF 파일의 다른 곳에서 CopyFiles, DelFiles 또는 RenFiles 지시문에서 참조할 수 있습니다. 섹션 이름은 INF 파일에 대한 일반 구문 규칙에 설명된 일반 규칙을 따라야 합니다.

  • 파일 이름 또는 file-list-section 항목에 @ 지정된 파일 이름은 원본 미디어에 있는 파일의 정확한 이름이어야 합니다. %strkey% 토큰을 사용하여 파일 이름을 지정할 수 없습니다. %strkey% 토큰에 대한 자세한 내용은 INF 문자열 섹션을 참조하세요.

  • CopyFiles 지시문은 시스템 정의 플랫폼 확장명(.nt, .ntx86, .ntia64 또는 .ntamd64)을 사용하여 file-list-section 이름 데코레이팅을 지원하지 않습니다.

  • CopyFiles 지시문을 사용하여 INF 파일을 복사하지 마세요. 자세한 내용은 INF 파일 복사를 참조하세요.

Windows Vista부터 INF CopyFiles 지시문에도 다음 사항이 적용됩니다.

  • 드라이버 패키지가 드라이버 저장소에서 스테이징되면 파일에 해당 INF CopyFiles 지시문이 있는 경우에만 드라이버 패키지 원본에서 드라이버 저장소로 파일이 복사됩니다.

  • Windows 업그레이드의 일부로 Windows는 파일에 INF CopyFiles 지시문이 있는 경우에만 드라이버 마이그레이션의 일부로 드라이버 패키지 파일을 드라이버 저장소에 복사합니다.

예제

이 예제에서는 SourceDisksNames, SourceDisksFilesDestinationDirs 섹션에서 간단한 디바이스 드라이버 INF 처리에서 발생하는 복사 파일 작업의 경로를 지정하는 방법을 보여 줍니다.

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

INF CopyFiles 지시문을 사용하는 방법에 대한 추가 예제는 WDK(Windows 드라이버 키트) 의 src 디렉터리에 포함된 디바이스 드라이버 샘플에 대한 INF 파일을 참조하세요.

추가 정보

AddInterface

ClassInstall32

DDInstall

DDInstall. 인터페이스

DelFiles

DestinationDirs

InterfaceInstall32

RenFiles

SourceDisksFiles

SourceDisksNames

문자열

버전