UMDF 드라이버 호스트 프로세스

이 항목에서는 UMDF(User-Mode Driver Framework) 드라이버 호스트 프로세스와 다른 UMDF 구성 요소에서 작동하는 방법에 대해 설명합니다. UMDF 버전 1과 2 모두에 적용됩니다.

드라이버 호스트 프로세스(Wudfhost.exe)는 드라이버 관리자 서비스의 자식 프로세스입니다. Wudfhost.exe 일반적으로 로컬 컴퓨터에 대한 최소 권한이 있는 LocalService 계정에서 실행됩니다. Wudfhost.exe instance 프레임워크 DLL 외에도 하나 이상의 UMDF 드라이버 DLL을 로드합니다. 드라이버 호스트 프로세스는 I/O 디스패치, 드라이버 로드, 드라이버 계층화 및 스레드 풀 관리뿐만 아니라 드라이버 관리자와 리플렉터 간의 IPC(Interprocess Communication)를 처리하는 런타임 환경을 제공합니다.

드라이버 관리자는 다음과 같이 Wudfhost.exe 여러 동시 인스턴스를 만들 수 있습니다.

  • UMDF 드라이버가 버전 1.11로 빌드되고 Windows 8 실행되는 경우 기본적으로 드라이버 관리자는 여러 디바이스 스택을 호스트할 수 있는 Wudfhost의 단일 instance 만듭니다. 이 기술을 디바이스 풀링이라고 합니다.

    UMDF 드라이버가 버전 2로 빌드되고 Windows 8.1 또는 Windows 10 실행 중인 경우 기본적으로 풀링도 켜져 있습니다.

  • 드라이버가 UMDF 버전 1.9 이전 버전으로 빌드된 경우 프레임워크는 각 디바이스 스택에 대한 호스트 프로세스(Wudfhost)의 별도 instance 만듭니다.

디바이스 풀링에 대한 자세한 내용은 UMDF 드라이버에서 디바이스 풀링 사용을 참조하세요.

각 Wudfhost.exe 프로세스는 자체 주소 공간에서 실행되므로 애플리케이션 프로세스 및 드라이버 호스트의 다른 인스턴스와 격리됩니다. 동일한 프로세스(디바이스 풀링)에서 실행되는 UMDF 드라이버는 주소 공간을 공유하며 서로 격리되지 않습니다.

동일한 호스트 프로세스 또는 다른 호스트 프로세스에서 UMDF 버전 1과 2를 사용하여 빌드된 드라이버를 동시에 로드할 수 있습니다. 예를 들어 기본적으로 드라이버 관리자는 Windows 8.1 이상을 실행하는 컴퓨터에서 동일한 호스트 프로세스에 UMDF 1.11 드라이버와 UMDF 2 드라이버를 로드합니다.

그러나 동일한 디바이스 스택에 UMDF 버전 1 및 2 드라이버를 로드할 수 없습니다. 예를 들어 UMDF 버전 1 필터 드라이버를 UMDF 버전 2 함수 드라이버 위에 로드할 수 없습니다.

드라이버 호스트가 다른 UMDF 구성 요소와 어떻게 관련되는지 보여 주는 다이어그램은 UMDF 개요를 참조하세요.