다음을 통해 공유


SetupInstallFromInfSectionA 함수(setupapi.h)

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

SetupInstallFromInfSection 함수는 INF 파일 설치 섹션의 모든 지시문을 수행합니다.

레지스트리 또는 파일이 수정된 경우 이 함수의 호출자에게 시스템 또는 대상 디렉터리에 쓸 수 있는 권한이 필요합니다.

구문

WINSETUPAPI BOOL SetupInstallFromInfSectionA(
  HWND                Owner,
  HINF                InfHandle,
  PCSTR               SectionName,
  UINT                Flags,
  HKEY                RelativeKeyRoot,
  PCSTR               SourceRootPath,
  UINT                CopyFlags,
  PSP_FILE_CALLBACK_A MsgHandler,
  PVOID               Context,
  HDEVINFO            DeviceInfoSet,
  PSP_DEVINFO_DATA    DeviceInfoData
);

매개 변수

Owner

디스크 프롬프트 또는 파일 복사와 같이 설치 중에 생성된 대화 상자를 소유하는 창에 대한 창 핸들에 대한 선택적 포인터입니다. 소유자를 지정하지 않으면 이러한 대화 상자는 최상위 창이 됩니다.

InfHandle

처리할 섹션이 포함된 INF 파일에 대한 핸들입니다.

SectionName

처리할 INF 파일의 설치 섹션 이름입니다.

Flags

수행할 작업을 제어합니다. 플래그는 다음 값의 조합일 수 있습니다.

SPINST_INIFILES

INI 파일 작업을 수행합니다(UpdateInis, UpdateIniFields 는 처리 중인 설치 섹션의 줄).

SPINST_REGISTRY

레지스트리 작업을 수행합니다(처리 중인 설치 섹션의 AddReg, DelReg 줄).

SPINST_INI2REG

INI 파일에서 레지스트리로 작업을 수행합니다(처리 중인 설치 섹션의 Ini2Reg 줄).

SPINST_LOGCONFIG

이 플래그는 디바이스 드라이버를 설치할 때만 사용됩니다.

논리 구성 작업을 수행합니다(처리 중인 설치 섹션의 LogConf 줄). 이 플래그는 DeviceInfoSetDeviceInfoData 가 지정된 경우에만 사용됩니다.

디바이스 드라이버, LogConf, DeviceInfoSet 또는 DeviceInfoData 설치에 대한 자세한 내용은 DDK 프로그래머 가이드를 참조하세요.

SPINST_FILES

파일 작업 수행(처리 중인 설치 섹션의 CopyFiles, DelFiles, RenFiles 줄).

SPINST_ALL

모든 설치 작업을 수행합니다.

SPINST_REGISTERCALLBACKAWARE

RegisterDlls INF 지시문을 사용하여 Windows 2000에서 DLL을 자체 등록하는 경우 SetupInstallFromInfSection의 호출자는 등록되거나 등록되지 않은 각 파일에 대한 알림을 받을 수 있습니다. 콜백 루틴에 SPFILENOTIFY_STARTREGISTRATION 또는 SPFILENOTIFY_ENDREGISTRATION 알림을 보내려면 SPINST_REGISTERCALLBACKAWARE 더하기 SPINST_REGSVR 또는 SPINST_UNREGSVR 포함합니다. 호출자는 MsgHandler 매개 변수도 설정해야 합니다.

SPINST_REGSVR

파일을 등록할 때 콜백 루틴에 알림을 보내려면 플래그에 SPINST_REGISTERCALLBACKAWARE 더하기 SPINST_REGSVR 포함합니다. 호출자는 MsgHandler 매개 변수도 지정해야 합니다.

SPINST_UNREGSVR

파일을 등록 취소할 때 콜백 루틴에 알림을 보내려면 플래그에 SPINST_REGISTERCALLBACKAWARE 더하기 SPINST_UNREGSVR 포함합니다. 호출자는 MsgHandler 매개 변수도 지정해야 합니다.

RelativeKeyRoot

Flags에 SPINST_REGISTRY 또는 SPINST_INI2REG 포함하는 경우 지정해야 하는 선택적 매개 변수입니다. INF 파일이 HKR을 키로 지정할 때 루트로 사용할 레지스트리 키에 대한 핸들입니다. 선택적 DeviceInfoSetDeviceInfoData 집합을 사용하여 SetupInstallFromInfSection을 호출하는 경우 이 매개 변수는 무시됩니다.

SourceRootPath

파일 복사본의 원본 루트입니다. 예를 들어 A:\ 또는 \pegasus\win\install이 있습니다. Flags에 SPINST_FILES 포함되고 SourceRootPath가 NULL인 경우 시스템은 기본 루트 경로를 제공합니다.

CopyFlags

Flags에 SPINST_FILES 포함하는 경우 지정해야 하는 선택적 매개 변수입니다. 파일이 복사 대기 중일 때 SetupQueueCopySection 함수에 전달할 플래그를 지정합니다. 이러한 플래그는 다음 값의 조합일 수 있습니다.

SP_COPY_DELETESOURCE

복사에 성공하면 원본 파일을 삭제합니다. 삭제가 실패하면 호출자에게 알림이 표시되지 않습니다.

SP_COPY_REPLACEONLY

이렇게 하면 대상 경로에서 파일을 덮어쓰는 경우에만 파일을 복사합니다.

SP_COPY_NEWER_OR_SAME

복사되는 각 파일을 검사하여 해당 버전 리소스가 대상의 기존 복사본과 동일하거나 최신 버전이 아닌지 확인합니다.

버전 검사 중에 사용되는 파일 버전 정보는 버전 함수가 입력한 대로 VS_FIXEDFILEINFO 구조체의 dwFileVersionMSdwFileVersionLS 멤버에 지정된 것입니다. 파일 중 하나에 버전 리소스가 없거나 동일한 버전 정보가 있는 경우 원본 파일은 최신 파일로 간주됩니다.

원본 파일이 버전 이상에서 같지 않고 CopyMsgHandler 가 지정된 경우 호출자에게 알림을 받고 복사본을 취소할 수 있습니다. CopyMsgHandler를 지정하지 않으면 파일이 복사되지 않습니다.

SP_COPY_NEWER_ONLY

복사되는 각 파일을 검사하여 해당 버전 리소스가 대상의 기존 복사본보다 최신이 아님을 나타내는지 확인합니다. 원본 파일이 최신 버전이지만 버전이 기존 대상과 같지 않으면 파일이 복사됩니다.

SP_COPY_NOOVERWRITE

대상 파일이 있는지 확인하고, 있는 경우 복사본을 거부할 수 있는 호출자에게 알립니다. CopyMsgHandler를 지정하지 않으면 파일을 덮어쓰지 않습니다.

SP_COPY_NODECOMP

파일의 압축을 풀지 마세요. 이 플래그를 설정하면 대상 파일에 소스 이름의 압축되지 않은 형식이 제공되지 않습니다(해당하는 경우). 예를 들어 f:/x86\cmd.ex_ \install\temp로 복사하면 대상 파일 \install\temp\cmd.ex_. SP_COPY_NODECOMP 플래그를 지정하지 않으면 파일이 압축 해제되고 대상이 \install\temp\cmd.exe 호출됩니다. DestinationName의 파일 이름 부분을 지정하면 제거되고 원본 파일의 파일 이름으로 바뀝 있습니다. SP_COPY_NODECOMP 지정하면 언어 또는 버전 정보를 확인할 수 없습니다.

SP_COPY_LANGUAGEAWARE

복사되는 각 파일을 검사하여 해당 언어가 대상에 이미 있는 기존 파일의 언어와 다른지 확인합니다. 이 경우 CopyMsgHandler 가 지정되면 호출자에게 알림이 표시되고 복사본을 취소할 수 있습니다. CopyMsgHandler를 지정하지 않으면 파일이 복사되지 않습니다.

SP_COPY_SOURCE_ABSOLUTE

SourceFile 은 전체 원본 경로입니다. INF 파일의 SourceDisksNames 섹션에서 조회하지 마세요.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot 는 원본 파일의 전체 경로 부분입니다. 파일이 있는 원본 미디어에 대한 INF 파일의 SourceDisksNames 섹션에 지정된 상대 원본을 무시합니다. SP_COPY_SOURCE_ABSOLUTE 지정한 경우 이 플래그는 무시됩니다.

SP_COPY_FORCE_IN_USE

대상이 있는 경우 사용 중인 것처럼 동작하고 다음 시스템 다시 부팅에서 복사할 파일을 큐에 대기합니다.

SP_COPY_IN_USE_NEEDS_REBOOT

복사 작업 중에 파일이 사용 중인 경우 시스템을 다시 부팅해야 한다고 사용자에게 알립니다. 이 플래그는 나중에 SetupPromptReboot 또는 SetupScanFileQueue를 호출할 때만 사용됩니다.

SP_COPY_NOSKIP

사용자에게 파일을 건너뛸 수 있는 옵션을 제공하지 마세요.

SP_COPY_FORCE_NOOVERWRITE

대상 파일이 있는지 확인하고, 있는 경우 파일을 덮어쓰지 않습니다. 호출자에게 알림이 표시되지 않습니다.

SP_COPY_FORCE_NEWER

복사되는 각 파일을 검사하여 해당 버전 리소스(또는 이미지가 아닌 파일에 대한 타임스탬프를)가 대상의 기존 복사본보다 최신이 아님을 나타내는지 확인합니다. 복사되는 파일이 최신 파일이 아니면 파일이 복사되지 않습니다. 호출자에게 알림이 표시되지 않습니다.

SP_COPY_WARNIFSKIP

사용자가 파일을 건너뛰려고 하면 파일을 건너뛰는 것이 설치에 영향을 줄 수 있음을 경고합니다. (시스템에 중요한 파일에 사용됩니다.)

MsgHandler

콜백 루틴에 대한 포인터입니다. 콜백 루틴은 FileCallback 형식이어야 합니다. 자세한 내용은 알림을 참조하세요 .

이 매개 변수는 Flags 매개 변수에 SPINST_FILES, SPINST_REGISTERCALLBACKAWARE 및 SPINST_REGSVR 또는 SPINST_UNREGSVR 포함하지 않는 경우에만 선택 사항입니다.

Flags에 SPINST_FILES 포함하는 경우 MsgHandler를 설정해야 합니다. 이 경우 파일 큐가 SetupCommitFileQueue로 커밋되면 콜백 루틴으로 알림이 전송됩니다.

플래그에 SPINST_REGISTERCALLBACKAWARE 더하기 SPINST_REGSVR 또는 SPINST_UNREGSVR 포함하는 경우 MsgHandler를 설정해야 합니다. 이 경우 Windows 2000의 RegisterDlls INF 지시문을 사용하여 파일이 등록되거나 등록 취소될 때마다 SPFILENOTIFY_STARTREGISTRATION 또는 SPFILENOTIFY_ENDREGISTRATION 콜백 루틴으로 전송됩니다.

Context

이 루틴에서 빌드한 파일 큐가 SetupCommitFileQueue를 통해 내부적으로 커밋될 때 콜백 함수에 전달할 값입니다. Context 매개 변수는 Flags 매개 변수에 SPINST_FILES 포함되지 않은 경우에만 선택 사항입니다. Flags에 SPINST_FILES 포함하는 경우 이 매개 변수 지정해야 합니다.

DeviceInfoSet

디바이스 정보 집합에 대한 핸들에 대한 선택적 포인터입니다. 디바이스 설치 관리자 설치 기능에 대한 자세한 내용은 DDK 프로그래머 가이드를 참조하세요.

DeviceInfoData

DeviceInfoSet에 지정된 집합의 특정 요소에 대한 컨텍스트를 제공하는 SP_DEVINFO_DATA 구조체에 대한 포인터에 대한 선택적 포인터입니다. 디바이스 설치 관리자 설치 기능에 대한 자세한 내용은 DDK 프로그래머 가이드를 참조하세요.

반환 값

함수가 성공하면 반환 값은 0이 아닌 값입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

UNC 디렉터리가 파일 복사 작업의 대상 디렉터리로 지정된 경우 SetupInstallFromInfSection을 호출하기 전에 해당 디렉터리가 있는지 확인해야 합니다. 설치 함수는 가 있는지 검사 않으며 UNC 디렉터리를 만들지 않습니다. 대상 UNC 디렉터리가 없으면 파일 설치가 실패합니다.

이 함수에는 Windows INF 파일이 필요합니다. 일부 이전 INF 파일 형식은 지원되지 않을 수 있습니다.

참고

setupapi.h 헤더는 SETUPInstallFromInfSection을 유니코드 전처리기 상수의 정의에 따라 이 함수의 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에 도입됨)

참조

함수

개요

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection