SetupDiCallClassInstaller 함수(setupapi.h)

SetupDiCallClassInstaller 함수는 지정된 설치 요청(DIF 코드)을 사용하여 적절한 클래스 설치 관리자 및 등록된 모든 공동 설치 관리자를 호출합니다.

구문

WINSETUPAPI BOOL SetupDiCallClassInstaller(
  [in]           DI_FUNCTION      InstallFunction,
  [in]           HDEVINFO         DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA DeviceInfoData
);

매개 변수

[in] InstallFunction

공동 설치 관리자 및 클래스 설치 관리자에게 전달할 디바이스 설치 요청(DIF 요청)입니다. DIF 코드는 DIF_XXX 형식이며 Setupapi.h에 정의되어 있습니다. 자세한 내용은 디바이스 설치 함수 코드를 참조하세요.

참고 특정 DIF 요청의 경우 호출자는 Administrators 그룹의 구성원이어야 합니다. 이러한 DIF 요청의 경우 이 요구 사항은 연결된 기본 처리기의 참조 페이지에 나열됩니다.
 

[in] DeviceInfoSet

로컬 컴퓨터에 대해 설정된 디바이스 정보에 대한 핸들입니다. 이 집합에는 지정된 설치 기능을 수행할 디바이스를 나타내는 디바이스 설치 요소가 포함되어 있습니다.

[in, optional] DeviceInfoData

DeviceInfoSet에서 지정된 설치 기능을 수행할 디바이스를 나타내는 디바이스 정보 요소를 지정하는 SP_DEVINFO_DATA 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL로 설정할 수 있습니다. 이 매개 변수를 지정하면 SetupDiCallClassInstallerDeviceInfoData 요소에서 지정된 함수를 수행합니다. DeviceInfoDataNULL인 경우 SetupDiCallClassInstallerDeviceInfoSet과 연결된 설치 클래스에 대한 설치 관리자를 호출합니다.

반환 값

함수가 성공하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE 를 반환하고 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.

GetLastError가 ERROR_IN_WOW64 반환하면 호출 애플리케이션이 64비트 환경에서 실행하려고 시도하는 32비트 애플리케이션이며 허용되지 않습니다.

설명

SetupDiCallClassInstaller 는 클래스 설치 관리자 및 디바이스 또는 디바이스 설정 클래스에 등록된 모든 공동 설치 관리자를 호출합니다. 이 함수는 아직 로드되지 않은 경우 설치 관리자를 로드합니다. 또한 함수는 기본 처리기가 있고 설치 관리자가 기본 처리기를 호출해야 함을 나타내는 상태 반환하는 경우 DIF 요청에 대한 기본 처리기를 호출합니다.

디바이스 설치 애플리케이션은 다양한 DIF 코드(디바이스 설치 함수 코드)를 사용하여 이 함수를 호출합니다. 함수는 지정된 DIF 요청에 대해 모든 적절한 설치 관리자 및 기본 처리기가 올바른 순서로 호출되도록 합니다. 자세한 내용은 DIF 코드 처리를 참조하세요.

SetupDiCallClassInstallerTRUE를 반환한 후 디바이스 설치 애플리케이션은 SetupDiGetDeviceInstallParams를 호출하여 SP_DEVINSTALL_PARAMS 구조를 가져와야 합니다. 구조체의 DI_NEEDREBOOT 또는 DI_NEEDRESTART 플래그가 설정된 경우 호출자는 사용자에게 시스템을 다시 시작하라는 메시지를 표시해야 합니다. 예를 들어 호출자는 SetupPromptReboot를 호출하여 이 작업을 수행할 수 있습니다.

그러나 디바이스 설치 애플리케이션은 최대 한 번 시스템 다시 시작을 요청해야 합니다. 따라서 SetupDiCallClassInstallerSetupDiGetDeviceInstallParams 에 대한 여러 호출을 만드는 디바이스 설치 애플리케이션은 각 호출 후 DI_NEEDREBOOTDI_NEEDRESTART 플래그를 저장해야 합니다. 그러나 마지막 호출이 반환된 후에만 사용자에게 메시지를 표시해야 합니다.

SetupDiCallClassInstaller에서 제공하는 DIF 코드에 대한 응답으로 클래스 설치 관리자 및 공동 설치 관리자는 시스템을 다시 시작해야 하는 작업을 수행할 수 있습니다. 이러한 경우 설치 관리자 또는 공동 설치 관리자는 다음을 수행해야 합니다.

  1. SetupDiGetDeviceInstallParams를 호출하여 SP_DEVINSTALL_PARAMS 구조를 가져옵니다.
  2. 구조체의 Flags 멤버에서 DI_NEEDREBOOT 또는 DI_NEEDRESTART플래그 를 설정합니다.
  3. SetupDiSetDeviceInstallParams를 호출하여 업데이트된 SP_DEVINSTALL_PARAMS 구조를 제공하여 수정된 Flags 멤버를 저장합니다.
SetupDiCallClassInstaller가 반환되면 이를 호출한 디바이스 설치 애플리케이션이 SetupDiGetDeviceInstallParams를 호출하고 플래그를 검사 필요한 경우 다시 시작을 요청해야 합니다.

DeviceInfoSet에서 지정한 디바이스 정보 집합에는 로컬 컴퓨터의 디바이스에 대한 요소만 포함되어야 합니다.

공동 설치 관리자의 디자인 및 작업에 대한 자세한 내용은 공동 설치 관리자 작성을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 setupapi.h(Setupapi.h 포함)
라이브러리 Setupapi.lib
DLL Setupapi.dll
API 세트 ext-ms-win-setupapi-classinstallers-l1-1-0(Windows 8 도입)

추가 정보

SP_DEVINFO_DATA