설치하는 동안 Windows에서 설치하기에 가장 적합한 장치 드라이버를 결정하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 279112 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

이 문서에서는 설치하는 동안 장치에 가장 적합한 장치 드라이버를 선택하는 데 사용되는 프로세스에 대해 설명합니다.

Windows 설치 프로그램을 실행하는 경우 특정 장치와 작동하는 .inf 파일이나 장치 드라이버의 집합이 두 개 이상일 수 있습니다. 설치 프로그램과 플러그 앤 플레이에서는 설치 중인 장치에 가장 적합한 장치 드라이버를 선택하여 이러한 충돌을 해결하려고 합니다.

참고: 이 문서에서는 설치 프로그램의 GUI(그래픽 사용자 인터페이스) 단계에서나 설치 프로그램이 완료된 후에 설치되고 있는 장치에 사용되는 프로세스에 대해서만 설명합니다. 설치 프로그램의 텍스트 모드 부분에서 수행되는 대용량 저장 장치 컨트롤러 검색 및 장치 드라이버 선택 과정은 다른 프로세스를 따릅니다.

추가 정보

대용량 저장 장치 컨트롤러 검색 프로세스에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
220845 Windows를 설치하는 동안 다른 공급업체 드라이버 또는 업데이트된 드라이버 추가

플러그 앤 플레이에서는 장치가 열거되었을 때 장치 펌웨어나 시스템 BIOS에서 반환된 하드웨어의 플러그 앤 플레이 ID를 .inf 파일에 있는 일치하는 플러그 앤 플레이 ID와 비교하여 호환되는 장치 드라이버를 찾으려고 합니다.

플러그 앤 플레이에서는 모든 .inf 파일을 검색하여 특정 장치에 설치하기에 가장 적합한 장치 드라이버를 찾을 수 있습니다. 즉, 이러한 장치 드라이버와 일치하는 항목을 처음 찾았을 때 검색을 중지하지 않고 다음 레지스트리 항목에 정의된 플러그 앤 플레이의 검색 경로에 나와 있는 모든 .inf 파일을 계속 검색합니다.
HKEY-LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
DevicePath:Reg_Expand_SZ:%Systemroot%\Inf

참고: 기본적으로 위의 레지스트리 위치에는 이 항목 하나만 포함되지만 무인 설치를 수행하고 OemPnpDriversPath = 매개 변수가 무인 응답 파일에서 사용되는 경우 다른 경로가 이 항목에 추가될 수 있습니다.

설치 프로그램에서는 .inf 파일에 일치하는 항목이 포함된 호환되는 장치 드라이버의 목록을 만들고 검색된 각 장치 드라이버에 "순위"를 할당합니다. 순위의 범위는 "0"에서 "0xFFFF"까지일 수 있으며 0이 가장 적합한 일치 항목이고 0xFFFF가 가장 적합하지 않은 일치 항목입니다. 순위가 가장 낮은 장치 드라이버가 가장 적합한 일치 항목으로 간주되어 설치됩니다.

장치 드라이버 순위는 다음과 같은 범위로 구분됩니다.
  • 0x0 - 0xfff: .inf 파일에 있는 하드웨어 ID와 일치하는 장치 하드웨어 ID
  • 0x1000 - 0x1fff: .inf 파일에 있는 호환되는 ID 중 하나와 일치하는 장치 하드웨어 ID
  • 0x2000 - 0x2fff: .inf 파일에 있는 하드웨어 ID와 일치하는 장치 호환 ID 중 하나
  • 0x3000 - 0x3fff: .inf 파일에 있는 호환 ID와 일치하는 장치 호환 ID 중 하나
  • 0xFFFF: 가장 적합하지 않은 일치 항목
Windows XP와 Windows Server 2003에는 장치 드라이버 순위의 범위가 더 있습니다.
  • 0x8000 - 0x8FFF: 신뢰할 수 없는 하드웨어 ID 일치 항목
  • 0x9000 - 0x9FFF: 신뢰할 수 없는 호환 ID 일치 항목
디지털 서명되지 않았거나 모델 구역 이름에 Windows NT 관련 데코레이션이 없는 일부 .inf 파일은 신뢰할 수 없는 범위에 있을 수 있습니다. 장치가 Windows NT, Windows 95 또는 Windows 98에 설치될 수 있지만 장치에 이러한 운영 체제에 대한 특정 항목이 없습니다.

설치 프로그램에서 장치 드라이버를 신뢰할 수 없다고 확인하면 장치 드라이버의 순위를 앞의 적절한 범위로 변경할 수 있습니다.
0x0에서 0xfff 범위의 장치 드라이버 순위는 하드웨어 ID가 직접 일치되는 경우이기 때문에 "하드웨어 ID 일치 항목"이라고 합니다. 이러한 순위는 가장 적합한 일치 항목으로도 간주되며 다른 모든 순위는 장치 드라이버 순위를 만드는 데 호환 ID가 하나 이상 있기 때문에 "호환"으로 표시됩니다. 또한 클래스 설치 관리자와 공동 설치 프로그램에서 장치 드라이버가 장치를 지원할 수 없다고 확인하거나 장치 드라이버의 순위를 변경하는 경우 장치 드라이버를 "잘못된 것"으로 표시하여 장치 드라이버의 선택에 영향을 줄 수도 있습니다.

그러나 두 장치 드라이버의 순위가 동일하게 가장 낮은 경우에는 설치 프로그램에서 최신 날짜의 장치 드라이버를 사용합니다. 두 장치 드라이버 중 하나가 서명되었고 다른 장치 드라이버는 서명되지 않았으면 서명되지 않은 장치 드라이버의 날짜에 0xFFFFFFFF 값이 할당되고 서명된 장치 드라이버가 선택되어 설치됩니다.

OEM에서 제공한 장치 드라이버를 제공할 수도 있지만 이러한 장치 드라이버는 선택되어 사용되지 않을 수 있습니다. 제조업체가 업데이트된 장치 드라이버를 제공한 경우에도 해당 장치 드라이버가 우선 순위 값이 더 높아서 적합성이 더 낮은 일치 항목이 될 수 있는 호환 장치 드라이버로 작성되었을 수 있습니다. 설치 프로그램에서는 장치 드라이버 일치 항목을 선택할 때 OEM에서 제공한 장치 드라이버가 디지털 서명되었는지 여부를 고려하지 않습니다. 서명되지 않은 장치 드라이버의 순위가 더 낮고 이 장치 드라이버가 다른 Windows 제공 장치 드라이버보다 적합한 일치 항목인 경우 설치 프로그램에서 해당 장치 드라이버를 선택하여 설치할 수 있습니다.

설치 프로그램을 실행할 때 모든 .inf 파일에서 일치 항목을 찾을 수 없으면 장치 설치가 연기되고 장치 관리자에서 장치가 알 수 없는 장치가 될 수 있습니다. 설치 중이 아닐 때 새 장치가 도입되고 컴퓨터의 모든 .inf 파일에서 일치 항목을 찾을 수 없으면 "새 하드웨어 발견" 메시지와 장치 드라이버를 제공하라는 메시지가 나타날 수 있습니다.

예를 들어, 플러그 앤 플레이 ID가 Nv3_disp.inf 및 Nv4_disp.inf 파일에 표시된 PCI 비디오 어댑터가 컴퓨터에 있는 경우 이러한 장치 드라이버 파일이 둘 다 디지털 서명되지 않았으면 두 장치 드라이버의 날짜에 0xFFFFFFFF 값이 할당됩니다. 이 예에서 두 파일은 D:\Drivers\Video1 및 D:\Drivers\Video2 폴더에 있습니다.

레지스트리의 현재 Devicepath=에는 %Systemroot%\Inf;%Systemdrive%\Drivers\Video1 및 %Systemdrive%\Drivers\Video2 항목이 있습니다.

참고: %Systemroot%는 D:\Winnt이고 %Systemdrive%는 D:입니다.

설치 프로그램과 플러그 앤 플레이에서는 위의 경로에 있는 모든 .inf 파일을 검색하고 발견되는 일치 항목을 모두 기록합니다. 설치 프로그램이나 플러그 앤 플레이에서 일치 항목을 두 개 이상 발견하면 가장 적합한 일치 항목이 사용됩니다.

다음은 Setupapi.log 파일에서 발췌한 것으로, 위의 과정을 자세히 보여 줍니다. 이 예제를 위해 설치의 로깅 모드는 다음 문서를 사용하여 세부 정보 표시 모드로 설정되었습니다.
243996 Windows 2000 GUI 모드 설치에서 자세한 로깅을 사용할 수 있게 설정하는 방법

설치 프로그램을 일반 모드로 실행하면 Setupapi.log 파일에 이렇게 자세히 표시되지 않습니다.

장치를 쿼리하면 장치에서 하드웨어 ID와 호환 ID의 목록을 반환합니다. 모든 장치에서 여러 ID를 반환하는 것은 아니지만 대부분의 경우 여러 ID를 반환합니다. 이 예제의 경우 비디오 카드에서 다음과 같은 ID를 반환합니다.
Searching for hardware IDs:
Pci\Ven_10de&dev_0028&subsys_5a001092&rev_11,
Pci\Ven_10de&dev_0028&subsys_5a001092,
Pci\Ven_10de&dev_0028&cc_030000,
Pci\Ven_10de&dev_0028&cc_0300
Searching for compatible IDs:
Pci\Ven_10de&dev_0028&rev_11,
Pci\Ven_10de&dev_0028,
Pci\Ven_10de&cc_030000,
Pci\Ven_10de&cc_0300,
Pci\Ven_10de,pci\cc_030000,
Pci\Cc_0300
Enumerating files D:\Winnt\Inf\*.inf
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\1394.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\accessor.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\acpi.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_mult.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_port.inf".
@ 07:11:59.207 : Opened PNF of "D:\Winnt\Inf\agtinst.inf".
.
.
.
Enumerating files D:\Drivers\Video1\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video1\NV4_DISP.inf".
@ 07:12:00.660 : The file (D:\Drivers\Video1\NV4_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.660 :Found Pci\VEN_10DE&DEV_0028 in 
D:\Drivers\Video1\NV4_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA
RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.660 : Decorated section name: nv4
Enumerating files D:\Drivers\Video2\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video2\NV3_DISP.inf".
@ 07:12:00.675 : The file (D:\Drivers\Video2\NV3_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.675 : Found PCI\VEN_10DE&DEV_0028 in
 D:\Drivers\Video2\NV3_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA
 RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.675 : Decorated section name: nv4
@ 07:12:01.706 : Device install function: DIF_SELECTBESTCOMPATDRV.
@ 07:12:01.706 : Executing class installer.
@ 07:12:01.894 : Completed class installer.
@ 07:12:01.894 : Executing default installer.
@ 07:12:01.894 : Selected driver installs from section nv4 in D:\Drivers\Video1\Nv4_disp.inf.
@ 07:12:01.894 : Changed class GUID of device to {4D36E968-E325-11CE-BFC1-08002BE10318}.
@ 07:12:01.894 : Set selected driver.
@ 07:12:01.894 : Selected best compatible driver.
@ 07:12:01.894 : Completed default installer.
@ 07:12:06.565 : Device install function: DIF_ALLOW_INSTALL.
@ 07:12:06.565 : Executing class installer.
@ 07:12:06.565 : Completed class installer.
@ 07:12:06.581 : Device install function: DIF_INSTALLDEVICEFILES.
@ 07:12:06.581 : Executing class installer.
@ 07:12:06.581 : Completed class installer.
@ 07:12:06.581 : Executing default installer.
				
예제 출력을 보면 설치 프로그램에서 D:\Drivers\Video1\Nv4_disp.inf 파일을 사용하여 가장 적합한 일치 항목으로 검색한 장치 드라이버를 선택하고 설치했음을 알 수 있습니다.

설치된 장치와 해당 장치를 설치하는 데 사용된 .inf 파일을 쉽게 찾으려면 Windows 메모장에서 %Systemroot%\Setupapi.log 파일을 열고 플러그 앤 플레이로 설치된 장치의 경우에는 DIF_SelectBestCompatDrv를 검색하고 수동으로 설치된 장치의 경우에는 DIF_SelectDevice를 검색하십시오.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 279112 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 6.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
키워드:?
kbinfo kbenv kbsetup KB279112

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com