DIF_DETECT

DIF_DETECT 요청은 설치 관리자에게 특정 클래스의 비 PnP 디바이스를 검색하고 디바이스 정보 집합에 디바이스를 추가하도록 지시합니다. 이 요청은 PnP가 아닌 디바이스에 사용됩니다.

보낸 경우

하드웨어 추가 마법사가 PnP가 아닌 디바이스를 검색하는 경우

처리할 사람

클래스 공동 설치 관리자

처리 가능

디바이스 공동 설치 관리자

처리하지 않음

클래스 설치 관리자

처리 가능

설치 관리자 입력

DeviceInfoSet
디바이스 정보 집합에 핸들을 제공합니다. DeviceInfoSet과 연결된 디바이스 설정 클래스가 있습니다.

DeviceInfoData
없음

디바이스 설치 매개 변수
DeviceInfoSet과 연결된 디바이스 설치 매개 변수가 있습니다.

클래스 설치 매개 변수
SP_DETECTDEVICE_PARAMS 구조체는 DeviceInfoSet과 연결됩니다. 매개 변수에는 클래스 설치 관리자가 검색 작업의 진행률을 나타내기 위해 호출하는 콜백 루틴이 포함되어 있습니다.

설치 관리자 출력

DeviceInfoSet
설치 관리자는 디바이스가 이전에 검색 및 설치되었는지 여부에 관계없이 검색되는 각 디바이스의 DeviceInfoSet 에 디바이스 정보 요소를 추가합니다.

디바이스 설치 매개 변수
설치 관리자는 DeviceInfoSet 또는 새로 만드는 디바이스 정보 요소에 대한 디바이스 설치 매개 변수를 수정할 수 있습니다.

설치 관리자 반환 값

공동 설치 관리자가 디바이스를 검색하지 않으면 전처리 패스에서 NO_ERROR 반환합니다. 공동 설치 관리자가 디바이스를 검색하는 경우 전처리 또는 후처리 중에 이를 수행하고 NO_ERROR 또는 Win32 오류 코드를 반환할 수 있습니다.

클래스 설치 관리자가 디바이스를 검색하면 NO_ERROR 또는 적절한 Win32 오류 코드가 반환됩니다. 클래스 설치 관리자가 이 DIF 요청을 처리하지 않으면 ERROR_DI_DO_DEFAULT 반환합니다.

기본 DIF 코드 처리기

없음

설치 관리자 작업

DIF_DETECT 요청에 대한 응답으로 설치 관리자는 해당 설정 클래스의 디바이스를 검색할 수 있습니다.

설치 관리자가 디바이스를 검색하는 경우 적어도 다음을 수행해야 합니다.

  • 검색에 상당한 시간이 걸리는 경우 SP_DETECTDEVICE_PARAMS 클래스 설치 매개 변수에서 DetectProgressNotify 콜백 루틴을 호출합니다.

  • 설치 관리자가 검색하는 각 디바이스에 대해 다음을 수행해야 합니다.

    • 디바이스 정보 요소(SetupDiCreateDeviceInfo)를 만듭니다.

    • 드라이버 선택에 대한 정보를 제공합니다.

      설치 관리자는 디바이스에 대한 드라이버를 수동으로 선택하거나 설치 관리자가 Windows에서 디바이스에 대한 INF를 찾는 데 사용할 디바이스의 하드웨어 ID를 설정할 수 있습니다. 설치 관리자는 속성 값이 SPDRP_HARDWAREID SetupDiSetDeviceRegistryProperty를 호출하여 하드웨어 ID를 설정합니다.

    • 일부 디바이스 설치 매개 변수를 설정할 수 있습니다.

  • 성공적인 검색을 위해 NO_ERROR 반환하거나 Win32 오류 코드를 반환합니다.

하나 이상의 설치 관리자가 이 DIF 코드에 대한 응답으로 디바이스를 검색하는 경우 Windows는 검색된 디바이스 목록을 현재 디바이스 목록과 비교합니다. 설치 관리자가 새 디바이스를 감지한 경우 Windows에서 디바이스 설치를 시도합니다. 설치 관리자가 설치 프로그램 목록에 표시되는 디바이스를 생략한 경우 Windows는 일반적으로 디바이스를 제거합니다.

GUI 모드 설정 중에 비 PnP 디바이스를 검색하려면 설치 관리자가 DIF_FIRSTTIMESETUP 요청을 처리해야 합니다. GUI 모드 설정은 설치 관리자에게 DIF_DETECT 요청을 보내지 않습니다.

DIF 코드에 대한 자세한 내용은 DIF 코드 처리를 참조하세요.

요구 사항

Version

Microsoft Windows 2000 이상 버전의 Windows에서 지원됩니다.

헤더

Setupapi.h(Setupapi.h 포함)

추가 정보

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS