Processo de host do driver UMDF

Este tópico descreve o processo de host do driver UMDF (User-Mode Driver Framework) e como ele funciona com outros componentes UMDF. Aplica-se às versões 1 e 2 do UMDF.

O processo de host do driver (Wudfhost.exe) é um processo filho do serviço de gerenciador de driver. Wudfhost.exe geralmente é executado na conta 'LocalService' , que tem privilégios mínimos no computador local. Uma instância de Wudfhost.exe carrega uma ou mais DLLs de driver UMDF, além das DLLs do framework. O processo anfitrião do driver fornece um ambiente de execução que lida com a comunicação entreprocessos (IPC) entre o gestor de drivers e o refletor, bem como o despacho de entrada/saída (E/S), carregamento de drivers, camadas de drivers e gestão do conjunto de filas de execução.

O gerenciador de driver pode criar várias instâncias simultâneas de Wudfhost.exe, da seguinte maneira:

  • Se o driver UMDF foi criado com a versão 1.11 e está sendo executado no Windows 8, por padrão, o gerenciador de driver cria uma única instância do Wudfhost que pode hospedar várias pilhas de dispositivos. Essa técnica é chamada de pool de dispositivos .

    Se o driver UMDF foi criado com a versão 2 e está sendo executado no Windows 8.1 ou Windows 10, o pool também está ativado por padrão.

  • Se o driver foi criado com UMDF versão 1.9 ou anterior, o framework cria uma instância separada do processo de host (Wudfhost) para cada pilha de dispositivos.

Para obter mais informações sobre o pool de dispositivos, consulte Usando o pool de dispositivos em drivers UMDF.

Cada processo Wudfhost.exe é executado em seu próprio espaço de endereçamento e, portanto, é isolado dos processos de aplicativo e outras instâncias do host do driver. Os drivers UMDF que são executados num mesmo processo (pool de dispositivos) partilham um espaço de endereçamento e não estão isolados entre si.

Você pode carregar drivers criados com as versões 1 e 2 do UMDF simultaneamente, quer seja no mesmo processo de host ou em processos de host diferentes. Por exemplo, por padrão, o gerenciador de driver carregaria um driver UMDF 1.11 e um driver UMDF 2 no mesmo processo de host em um computador executando o Windows 8.1 ou posterior.

No entanto, você não pode carregar drivers UMDF versão 1 e 2 na mesma pilha de dispositivos. Por exemplo, não é possível carregar um driver de filtro UMDF versão 1 acima de um driver de função UMDF versão 2.

Para obter um diagrama que mostra como o host do driver se relaciona com outros componentes UMDF, consulte Visão geral do UMDF.