DIFx 지침

Windows 10 버전 1607(Redstone 1)부터 DIFx(드라이버 설치 프레임워크) 도구(Difxapi.dll, Difxapp.dll, Difxappa.dllDPInst.exe)는 더 이상 사용되지 않으며 더 이상 WDK에 포함되지 않습니다.

대신 설치 관리자가 필요하지 않은 독립 실행형 드라이버 패키지로 드라이버 패키지를 제공하는 것이 좋습니다. 드라이버 패키지가 의존할 수 있는 시스템 상태를 수정하기 위해 설치 관리자에 의존하지 않고 올바르게 작동해야 하는 자체 설정 또는 구성을 추가하는 자체 포함 패키지입니다. Windows 업데이트 통해 드라이버 패키지를 배포하고 오프라인 이미지에 드라이버 패키지를 추가하는 것과 같은 드라이버 패키지 시나리오를 지원하려면 독립 실행형 드라이버 패키지가 필요합니다. Windows 업데이트 통해 하드웨어가 연결된 시스템에 배달할 독립 실행형 드라이버 패키지를 게시하는 것이 좋습니다. Windows 업데이트 드라이버 패키지를 게시하는 첫 번째 단계는 Windows 하드웨어 개발자 센터에 드라이버 패키지를 제출하는 것입니다.

DIFx를 사용하도록 선택하는 경우 이전 WDK를 사용하여 올바른 도구를 가져와야 합니다. 다음 주의 사항이 적용됩니다.

  • 드라이버 패키지가 Windows 8.1 이상의 TargetOSVersion 값만 지정하는 경우 DIFxApp의 GetVersionEx에 대한 DIFxApp 종속성으로 인해 DIFxApp MSI 사용자 지정 작업(Difxapp.dllDifxappa.dll)을 사용할 수 없습니다. Windows 8.1 시작부터 변경된 API입니다. TargetOSVersionINF 제조업체 섹션에 지정됩니다. DIFxApp은 MsiProcessDrivers, MsiInstallDrivers 및 MsiUninstallDrivers와 같은 MSI 사용자 지정 작업을 노출합니다. 드라이버 패키지가 Windows 8.1 이상의 TargetOSVersion 값을 지정하는 경우 MSI에서 이러한 사용자 지정 작업을 사용할 수 없습니다.
  • Windows 8.1 시작해서 연결 Difxapi.dll 되는 애플리케이션에는 애플리케이션이 실행되도록 의도된 OS 버전을 대상으로 하는 앱 매니페스트가 포함되어야 합니다. 이는 DIFxAPI가 Windows 8.1 시작한 API인 GetVersionEx에 대한 종속성 때문입니다. Windows 8.1 GetVersionEx의 변경 내용에 대한 자세한 내용은 Windows용 애플리케이션 대상 지정을 참조하세요.
  • 드라이버 패키지가 TargetOSVersion(Windows 10 버전 1607(빌드 14310 이상)에서 도입된 BuildNumber 부분을 사용하는 경우 해당 드라이버 패키지와 함께 DIFx 도구를 사용할 수 없습니다. DIFx 도구는 BuildNumber 대상 지정을 지원하지 않습니다.
  • Windows 10 버전 1511 WDK를 통해 Windows 7 WDK에서 사용할 수 있는 DIFx 버전 2.1을 사용합니다. DIFx 버전의 2.1은 이전 버전의 WDK에서 사용할 수 있었지만 Windows 7 이상 버전의 Windows와 호환되지 않았습니다.
  • 이전 WDK에는 DIFx 이진 파일의 x86 및 amd64 버전만 포함됩니다. DIFx 이진 파일은 다른 아키텍처에 사용할 수 없습니다.

더 이상 업데이트되지 않지만 Difxapi.h에서 DIFx에 대한 API 참조 설명서를 찾을 수 있습니다. DriverPackagePreinstall, DriverPackageInstall 및 DriverPackageUninstall API를 사용하는 경우 DiInstallDriverDiUninstallDriver로 전환하는 것이 좋습니다.

드라이버 패키지를 설치하는 데 사용자 지정 설치 관리자가 여전히 필요한 경우 PnPUtil 명령줄 도구 또는 드라이버 설치 기능을 호출하는 사용자 지정 설치 관리자를 사용합니다.

마찬가지로 드라이버 패키지를 제거하려면 사용자 지정 설치 관리자가 필요한 경우 PnPUtil 또는 DiUninstallDriver 또는 SetupUninstallOEMInf를 호출하는 사용자 지정 설치 관리자를 사용합니다.