SetupDiInstallDevice 함수(setupapi.h)
SetupDiInstallDevice 함수는 DIF_INSTALLDEVICE 설치 요청에 대한 기본 처리기입니다.
구문
WINSETUPAPI BOOL SetupDiInstallDevice(
[in] HDEVINFO DeviceInfoSet,
[in, out] PSP_DEVINFO_DATA DeviceInfoData
);
매개 변수
[in] DeviceInfoSet
설치할 디바이스를 나타내는 디바이스 정보 요소가 포함된 로컬 시스템의 디바이스 정보 집합 에 대한 핸들입니다.
[in, out] DeviceInfoData
DeviceInfoSet에서 디바이스 정보 요소를 지정하는 SP_DEVINFO_DATA 구조체에 대한 포인터입니다. DeviceInfoData이기 때문에 IN-OUT 매개 변수입니다.DevInst는 반환 시 새 핸들 값으로 업데이트될 수 있습니다.
반환 값
함수가 성공하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE 를 반환하고 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.
설명
SetupDiInstallDevice 는 INF 파일에서 드라이버를 설치합니다. SetupAPI의 "드라이버" 정의는 실제로 "드라이버 노드"입니다. 따라서 이 함수가 드라이버를 설치하면 다음 목록에 항목도 설치됩니다.
- 디바이스에 대한 서비스입니다.
- 드라이버 파일입니다.
- 디바이스별 공동 설치 관리자(있는 경우).
- 속성 페이지 공급자(있는 경우).
- 제어판 애플릿(있는 경우).
성공적인 설치에는 다음 단계가 포함되지만 이에 국한되지는 않습니다.
- 레지스트리에서 드라이버 키를 만들고 적절한 항목(예: InfPath 및 ProviderName)을 작성합니다.
- 디바이스에 대한 INF DDInstall 섹션 을 찾아서 처리합니다. 섹션은 OS/아키텍처에 따라 다를 수 있습니다. DDInstall 섹션의 AddReg 및 DelReg 항목은 디바이스의 소프트웨어 키를 대상으로 합니다. DDInstall을 찾아서 처리합니다. AddReg 및 DelReg 항목이 디바이스의 하드웨어 키를 대상으로 하는 HW 섹션입니다. INF DDInstall.LogConfigOverride 섹션(있는 경우)을 찾아서 처리하여 디바이스에 대한 재정의 구성을 제공합니다. INF DDInstall.Services 섹션을 찾아서 처리하여 디바이스에 대한 서비스를 추가하고 더 이상 필요하지 않은 이전 서비스를 제거할 수 있습니다.
- INF 파일을 시스템 INF 디렉터리에 복사합니다.
-
디바이스 설치 매개 변수의 플래그 설정에 따라 다른 파일 작업을 수행할 수 있습니다.
DI_NOFILECOPY 플래그와 DI_NOVCP 플래그가 명확하면 DDInstall 섹션에 지정된 모든 파일 작업을 수행합니다. DI_NOVCP 플래그가 설정된 경우 파일 작업을 큐에 대기합니다.
DI_NOFILECOPY 플래그가 설정된 경우 파일을 복사하지 마세요. 예를 들어 이 디바이스 설치에 대해 DIF_INSTALLDEVICEFILES 작업이 이미 수행된 경우 이 플래그가 설정될 수 있습니다.
- 디바이스에 대한 드라이버를 로드합니다. 여기에는 함수 드라이버 및 상위 또는 하위 필터 드라이버가 포함됩니다.
- 드라이버의 AddDevice 루틴을 호출합니다.
- IRP_MN_START_DEVICE IRP(I/O 요청 패킷)를 전송하여 디바이스를 시작합니다.
클래스 설치 관리자는 DIF_INSTALLDEVICE 요청을 처리 할 때 ERROR_DI_DO_DEFAULT 반환하거나 이 함수를 호출해야 합니다. 이 함수는 디바이스 설치를 위해 많은 작업을 수행하며 해당 작업 목록은 향후 릴리스에서 확장될 수 있습니다. 클래스 설치 관리자가 이 함수를 호출하지 않고 디바이스 설치를 수행하는 경우 클래스 설치 관리자가 이후 버전의 운영 체제에서 제대로 작동하지 않을 수 있습니다.
Windows에서 디바이스에 대한 INF 파일을 찾을 수 없는 경우 null 드라이버를 설치하기 위해 DIF_INSTALLDEVICE 보냅니다. SetupDiInstallDevice 는 디바이스가 원시 모드 를 지원하거나 PnP가 아닌 디바이스( IoReportDetectedDevice에서 보고됨)인 경우에만 null 드라이버를 설치합니다. 자세한 내용은 DIF_INSTALLDEVICE 참조하세요.
DI_FLAGSEX_SETFAILEDINSTALL 플래그가 SP_DEVINSTALL_PARAMS 구조에 설정된 경우 SetupDiInstallDevice 는 디바이스의 ConfigFlags 레지스트리 값에 FAILEDINSTALL 플래그만 설정합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | setupapi.h(Setupapi.h 포함) |
라이브러리 | Setupapi.lib |
DLL | Setupapi.dll |