User-Mode NetAdapterCx

A partir do Windows 11, versão 24H2, o NetAdapterCx permite que você registre um driver de placa de rede User-Mode Driver Framework (UMDF). As APIs UMDF no NetAdapterCx se alinham às versões KMDF, permitindo que você converta o driver do cliente baseado em KMDF em UMDF com pouca ou nenhuma alteração de código.

Benefícios dos drivers NetAdapterCx no modo de usuário

A criação de um driver UMDF NetAdapterCx oferece as seguintes vantagens:

  1. Sistema mais estável: um driver de modo de usuário só pode acessar o espaço de endereço do processo. Se ele travar, isso não afetará o sistema. O driver pode reiniciar automaticamente, restaurando rapidamente a conexão.

  2. Mais segurança: os aplicativos de modo de usuário não podem acessar diretamente recursos essenciais do sistema nem executar instruções privilegiadas. Portanto, qualquer violação na segurança do driver não compromete a integridade do kernel.

  3. Desenvolvimento mais simples: os drivers de modo de usuário melhoram o fluxo de trabalho do desenvolvedor. Não há necessidade de esperar que as máquinas de teste sejam reinicializadas após falhas, e a implantação pode ser mais rápida usando-se a mesma máquina para desenvolvimento e teste.

  4. Mais inovação e flexibilidade: as restrições de desenvolvimento de drivers no modo kernel costumam limitar a inovação. Os drivers de modo de usuário oferecem um ambiente mais flexível, permitindo que desenvolvedores usem recursos e ferramentas avançadas que são incompatíveis ou difíceis de implementar no modo kernel.

Limitações do NetAdapterCx em modo de usuário

Os recursos a seguir estão disponíveis apenas para drivers NetAdapterCx baseados em KMDF.

DMA (Direct Memory Access)

O DMA ainda não está disponível no modo de usuário.

Os drivers UMDF devem definir o membro DmaCapabilities em NET_ADAPTER_RX_CAPABILITIES e NET_ADAPTER_TX_CAPABILITIES como NULL.

Alocação de buffer do lado do cliente

O gerenciamento de buffer de dados de rede do lado do cliente não está disponível no modo de usuário. Os drivers UMDF NetAdapterCx devem contar com o sistema para alocar buffers de dados para os caminhos de dados de transmissão e recebimento.

Quando o driver UMDF anuncia seus recursos de buffer de dados de hardware usando a estrutura NET_ADAPTER_RX_CAPABILITIES, ele deve:

Converter um driver KMDF NetAdapterCx em UMDF

Para operar no modo de usuário, o driver do cliente deve usar apenas APIs WDF principais que fazem parte do UMDF. Por exemplo, o driver do cliente não deve usar nenhuma API exclusiva para drivers KMDF.

Para converter o driver KMDF NetAdapterCx em UMDF, siga as etapas em Como converter um driver KMDF em um driver UMDF 2.

As versões UMDF e KMDF do NetAdapterCx compartilham o mesmo número de versão principal.