다음을 통해 공유


SetupCopyOEMInfW 함수(setupapi.h)

[이 함수는 요구 사항 섹션에 표시된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다. SetupAPI는 더 이상 애플리케이션 설치에 사용되지 않아야 합니다. 대신 Windows Installer를 사용하여 애플리케이션 설치 관리자를 개발합니다. SetupAPI는 디바이스 드라이버를 설치하는 데 계속 사용됩니다.]

SetupCopyOEMInf 함수는 지정된 .inf 파일을 %windir%/Inf 디렉터리에 복사합니다.

이 함수의 호출자는 관리 권한이 있어야 합니다. 그렇지 않으면 함수가 실패합니다.

구문

WINSETUPAPI BOOL SetupCopyOEMInfW(
  [in]            PCWSTR SourceInfFileName,
  [in]            PCWSTR OEMSourceMediaLocation,
  [in]            DWORD  OEMSourceMediaType,
  [in]            DWORD  CopyStyle,
  [out, optional] PWSTR  DestinationInfFileName,
  [in]            DWORD  DestinationInfFileNameSize,
  [out, optional] PDWORD RequiredSize,
  [out, optional] PWSTR  *DestinationInfFileNameComponent
);

매개 변수

[in] SourceInfFileName

원본 .inf 파일의 전체 경로입니다. null로 끝나는 문자열을 사용해야 합니다. 이 경로는 종료 NULL을 포함하여 크기가 MAX_PATH 초과해서는 안 됩니다.

[in] OEMSourceMediaLocation

미리 컴파일된 .inf(.pnf)에 저장할 원본 위치 정보입니다. 이 위치 정보는 지정된 원본 미디어 유형과 관련이 있습니다. null로 끝나는 문자열을 사용해야 합니다. 이 경로는 종료 NULL을 포함하여 크기가 MAX_PATH 초과해서는 안 됩니다.

[in] OEMSourceMediaType

위치 정보에서 참조하는 원본 미디어 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
SPOST_NONE
.pnf 파일에는 원본 미디어 정보가 저장되지 않습니다. 이 경우 OEMSourceMediaLocation 값은 무시됩니다.
SPOST_PATH
OEMSourceMediaLocation 에는 원본 미디어에 대한 경로가 포함되어 있습니다. 예를 들어 미디어가 플로피에 있는 경우 이 경로는 "A:\"일 수 있습니다. OEMSourceMediaLocationNULL인 경우 경로는 .inf가 있는 경로로 간주됩니다. .inf에 해당 .pnf가 해당 위치에 있는 경우 .pnf 파일의 원본 미디어 정보가 대상 .pnf 파일로 전송됩니다.
SPOST_URL
OEMSourceMediaLocation 에는 .inf/driver 파일이 검색된 인터넷 위치를 지정하는 URL(유니버설 리소스 로케이터)이 포함되어 있습니다. OEMSourceMediaLocationNULL인 경우 기본 코드 다운로드 관리자 위치가 사용되었다고 가정합니다.

[in] CopyStyle

.inf 파일을 .inf 디렉터리에 복사하는 방법을 지정합니다. 다음 플래그를 결합할 수 있습니다.

의미
SP_COPY_DELETESOURCE
복사에 성공하면 원본 파일을 삭제합니다.
SP_COPY_REPLACEONLY
이 파일이 Inf 디렉터리에 이미 있는 경우에만 복사합니다. 이 플래그를 사용하여 기존 .inf의 원본 위치 정보를 업데이트할 수 있습니다.
SP_COPY_NOOVERWRITE
지정된 파일이 현재 Inf 디렉터리에 없는 경우에만 복사합니다. .inf가 현재 있는 경우 이 API는 실패하고 GetLastError 는 ERROR_FILE_EXISTS 반환합니다. 이 경우 기존 .inf 파일의 파일 이름은 대상 .inf 파일의 정보 출력 버퍼에 있는 적절한 필드에 배치됩니다.
SP_COPY_OEMINF_CATALOG_ONLY
지정된 .inf 파일의 해당 카탈로그 파일이 %windir%\Inf에 복사됩니다. 이 플래그를 지정하면 지정된 .inf 파일이 Inf 디렉터리에 이미 있는 경우 반환이 성공하면 대상 파일 이름 정보가 입력됩니다.

[out, optional] DestinationInfFileName

Inf 디렉터리에 복사될 때 할당된 .inf 파일 이름을 받을 버퍼에 대한 포인터입니다. 지정된 경우 버퍼는 일반적으로 길이가 MAX_PATH 합니다. SP_COPY_NOOVERWRITE 플래그를 지정하고 SetupCopyOEMInf 함수가 반환 코드 ERROR_FILE_EXISTS 실패하면 이 버퍼에는 기존 .inf 파일의 이름이 포함됩니다. SP_COPY_OEMINF_CATALOG_ONLY 플래그를 지정하면 .inf 파일이 Inf 디렉터리에 이미 있는 경우 이 버퍼에 대상 .inf 파일 이름이 포함됩니다. 그렇지 않으면 이 버퍼가 빈 문자열로 설정됩니다. 이 매개 변수는 NULL일 수 있습니다.

[in] DestinationInfFileNameSize

DestinationInfFileName 버퍼의 크기(문자) 또는 버퍼가 지정되지 않은 경우 0입니다. DestinationInfFileName이 지정되고 이 버퍼 크기가 대상 .inf 파일 이름(전체 경로 포함)을 반환하는 데 필요한 크기보다 작으면 이 함수가 실패합니다. 이 경우 GetLastError는 ERROR_INSUFFICIENT_BUFFER 반환합니다.

[out, optional] RequiredSize

종료 NULL을 포함하여 대상 .inf 파일 이름을 저장하는 데 필요한 크기(문자 단위)를 받는 변수에 대한 포인터입니다. SP_COPY_OEMINF_CATALOG_ONLY 플래그를 지정하면 이 변수는 Inf 디렉터리에 .inf 파일이 이미 있는 경우에만 문자열 길이를 받습니다. 그렇지 않으면 이 변수가 0으로 설정됩니다. 이 매개 변수는 NULL일 수 있습니다.

[out, optional] DestinationInfFileNameComponent

DestinationInfFileName 매개 변수에 저장된 경로의 파일 이름 구성 요소의 시작을 가리키는 성공적인 반환(또는 ERROR_FILE_EXISTS)에 설정된 문자열에 대한 포인터입니다. SP_COPY_OEMINF_CATALOG_ONLY 플래그를 지정하면 DestinationInfFileName 매개 변수가 빈 문자열일 수 있습니다. 이 경우 반환이 성공하면 문자 포인터가 NULL 로 설정됩니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

이 함수는 WINSETUPAPI BOOL을 반환합니다.

설명

SetupCopyOEMInf 함수는 지정된 .inf 파일을 %windir%\Inf 디렉터리에 복사합니다. SetupCopyOEMInf 는 지정된 .inf 파일의 이진 이미지가 OEM*.inf 양식의 이름이나 이름이 같은 Inf 디렉터리에 이미 있는 경우 파일의 범위를 다시 지정하지 않습니다. SetupCopyOEMInf는 파일을 복사할 때 복사한 파일의 이름을 OEM*.inf로 바꿉니다. 제공된 이름은 고유하며 예측할 수 없습니다.

SetupCopyOEMInf 는 다음 절차를 사용하여 Inf 디렉터리에 .inf 파일이 이미 있는지 확인합니다.

OEM*.inf 형식의 이름을 가진 모든 .inf 파일은 열거되고 지정된 .inf 파일과 파일 크기가 같은 모든 파일은 이진 파일과 비교됩니다.

Inf 디렉터리가 .inf 파일의 원본 파일 이름을 검색합니다. 이름이 같은 .inf 파일이 있고 지정된 .inf 파일과 크기가 같으면 두 파일이 동일한지 확인하기 위해 이진 파일입니다.

지정된 .inf 파일이 이미 있는 경우 지정된 .inf 파일에 [Version] 섹션에 CatalogFile= 항목이 포함되어 있는지 확인하기 위해 추가 검사 수행됩니다. 이 경우 ".cat" 확장명인 .inf 파일의 %windir%\Inf 기본 파일 이름이 카탈로그가 이미 설치되어 있는지 확인하는 데 사용됩니다. 카탈로그가 설치되어 있지만 원본 .inf와 연결된 카탈로그와 동일하지 않은 경우 일치하는 것으로 간주되지 않으며 열거형이 계속됩니다. %windir%\Inf 디렉터리에 포함된 고유한 카탈로그가 있는 동일한 .inf 파일을 여러 개 포함할 수 있습니다. 기존 일치 항목을 찾을 수 없는 경우 .inf 및 .cat 파일이 새롭고 고유한 이름으로 설치됩니다.

CatalogFile= 항목을 지정하지 않는 OEM .inf 파일은 디지털 서명 확인과 관련하여 잘못된 것으로 간주됩니다.

.inf 파일을 %windir%\Inf 디렉터리에 복사해야 하는 경우 디지털 서명 확인 오류가 보고됩니다.

.inf 및 .cat 파일이 이미 있는 경우 이러한 기존 파일 이름이 사용되고 파일 대체 동작은 지정된 CopyStyle 플래그를 기반으로 합니다. 대체 동작은 .pnf에 저장된 원본 미디어 정보만 나타냅니다. 기존 .inf, .pnf 및 .cat 파일은 수정되지 않습니다.

참고

setupapi.h 헤더는 SETUPCopyOEMInf를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 setupapi.h
라이브러리 Setupapi.lib
DLL Setupapi.dll
API 세트 ext-ms-win-setupapi-classinstallers-l1-1-2(Windows 10 버전 10.0.14393에 도입됨)

참조

함수

개요

SetupUninstallOEMInf