다음을 통해 공유


SetupDiBuildDriverInfoList 함수(setupapi.h)

SetupDiBuildDriverInfoList 함수는 특정 디바이스 또는 디바이스 정보 집합에 대한 전역 클래스 드라이버 목록과 연결된 드라이버 목록을 빌드합니다.

구문

WINSETUPAPI BOOL SetupDiBuildDriverInfoList(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData,
  [in]      DWORD            DriverType
);

매개 변수

[in] DeviceInfoSet

모든 디바이스 정보 요소 또는 특히 단일 디바이스 정보 요소에 대해 전역적으로 드라이버 목록을 포함하도록 설정된 디바이스 정보에 대한 핸들입니다. 디바이스 정보 집합에는 원격 디바이스 정보 요소가 포함되어서는 안됩니다.

[in, out] DeviceInfoData

드라이버 목록을 작성할 디바이스를 나타내는 DeviceInfoSet의 디바이스 정보 요소에 대한 SP_DEVINFO_DATA 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 이 매개 변수를 지정하면 목록이 지정된 디바이스와 연결됩니다. 이 매개 변수가 NULL인 경우 목록은 DeviceInfoSet에 대한 전역 클래스 드라이버 목록과 연결됩니다.

호환되는 드라이버 목록을 빌드하여 이 디바이스의 클래스가 업데이트되면 DeviceInfoData입니다.ClassGuid 는 반환 시 업데이트됩니다.

[in] DriverType

빌드할 드라이버 목록의 유형입니다. 다음 값 중 하나여야 합니다.

의미
SPDIT_CLASSDRIVER
클래스 드라이버 목록을 작성합니다. DeviceInfoDataNULL인 경우 이 드라이버 목록 유형을 지정해야 합니다.
SPDIT_COMPATDRIVER
호환되는 드라이버 목록을 빌드합니다. 이 드라이버 목록 유형이 지정된 경우 DeviceInfoDataNULL이 아니어야 합니다.

반환 값

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

설명

SetupDiBuildDriverInfoList는 로컬 컴퓨터에서만 드라이버를 검색하므로 디바이스 정보 집합은 로컬 컴퓨터에 대해 설정되어야 합니다. 디바이스 정보 집합이 원격 컴퓨터에 대해 설정된 경우 함수는 TRUE 를 반환하지만 실제로 디바이스 정보 집합에 대한 기존 드라이버 목록을 업데이트하지 않거나, 제공된 경우 디바이스 정보 요소에 대한 드라이버 목록을 업데이트하지 않습니다.

호출자는 디바이스 정보 집합 또는 특정 디바이스(DeviceInfoData)와 연결된 SP_DEVINSTALL_PARAMS플래그를 설정하여 목록을 빌드하는 방법을 제어할 수 있습니다. 예를 들어 호출자는 선택에서 제외로 표시된 드라이버를 포함하도록 DI_FLAGSEX_ALLOWEXCLUDEDDRVS 플래그를 설정할 수 있습니다.

드라이버는 INF 파일에서 ExcludeFromSelect 로 표시되거나 전체 설치 클래스가 클래스 설치 관리자 INF 파일에서 NoInstallClass 또는 NoUseClass 로 표시된 디바이스의 드라이버인 경우 "선택에서 제외"입니다. PnP 디바이스용 드라이버는 일반적으로 "선택에서 제외"입니다. PnP 디바이스를 수동으로 설치하면 안 됩니다. PnP 디바이스에 대한 드라이버 파일 목록을 작성하려면 SetupDiBuildDriverInfoList 호출자가 이 플래그를 설정해야 합니다.

SP_DEVINSTALL_PARAMSDriverPath에는 INF 파일이 포함된 디렉터리의 경로 또는 특정 INF 파일의 경로가 포함됩니다. DI_ENUMSINGLEINF 설정된 경우 DriverPath에는 단일 INF 파일의 경로가 포함됩니다. DriverPathNULL인 경우 이 함수는 기본 INF 파일 위치인 %SystemRoot%\inf에서 드라이버 목록을 작성합니다.

이 함수가 지정된 드라이버 목록을 빌드한 후 호출자는 SetupDiEnumDriverInfo를 호출하여 목록의 요소를 열거할 수 있습니다.

드라이버 목록이 디바이스 instance 연결된 경우(즉, DeviceInfoData가 지정됨) 결과 목록은 연결된 디바이스 instance 클래스와 동일한 클래스를 가진 드라이버로 구성됩니다. 전역 클래스 드라이버 목록인 경우(즉, DriverTypeSPDIT_CLASSDRIVERDeviceInfoData 가 지정되지 않은 경우) 목록을 작성할 때 사용되는 클래스는 디바이스 정보 집합과 연결된 클래스입니다. 디바이스 정보 집합에 연결된 클래스가 없으면 목록을 작성할 때 모든 클래스의 드라이버가 사용됩니다.

다른 스레드는 SetupDiCancelDriverInfoSearch를 호출하여 드라이버 목록 빌드를 종료할 수 있습니다.

DeviceInfoSet에는 로컬 컴퓨터의 요소만 포함되어야 합니다. 이 함수는 로컬 드라이버만 검색합니다.

요구 사항

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

추가 정보

SetupDiCancelDriverInfoSearch

SetupDiDestroyDriverInfoList

SetupDiEnumDriverInfo