Partilhar via


Suporte ao processamento de pacotes IP brutos do MB

Os drivers de miniport de MB que dão suporte a quadros de pacotes IP brutos em seu caminho de dados de envio/recebimento devem observar as seguintes diretrizes:

Sinalizadores NBL (lista de buffers líquidos) para processamento de pacotes IP BRUTOs

  • Para pacotes IPv4:

    O membro NblFlags da estrutura NET_BUFFER_LIST deve ser definido como NDIS_NBL_FLAGS_IS_IPV4.

    O membro NetBufferListFrameType da estrutura NET_BUFFER_LIST deve ser definido como 0x0800 (Ethertype IPv4) na ordem de byte de rede.

  • Para pacotes IPv6:

    O membro NblFlags da estrutura de NET_BUFFER_LIST deve ser definido como NDIS_NBL_FLAGS_IS_IPV6.

    O membro NetBufferListFrameType da estrutura NET_BUFFER_LIST deve ser definido como 0x86dd (Ethertype IPv6) na ordem de byte de rede.

Os drivers de miniport podem usar a macro NdisSetNblFlag para definir sinalizadores na lista de buffers líquidos. A linha a seguir demonstra como definir o sinalizador de pacote IPv4 na lista de buffers de rede:

NdisSetNblFlag(pNbl, NDIS_NBL_FLAGS_IS_IPV4);

Os drivers de miniport podem usar o NET_BUFFER_LIST_INFO para obter e definir informações em uma lista de buffers líquidos. A linha a seguir demonstra como modificar o OOB NetBufferListFrameType na lista de buffers de rede para pacotes IPV4:

Value = ConvertToNetworkByteOrder(0x0800);
NET_BUFFER_LIST_INFO(pNbl, NetBufferListFrameType) = Value;

Processamento de caminho de envio

O Serviço MB definirá esses sinalizadores na NBL antes de passar a lista para o driver de miniporto a ser enviado pela rede. O driver de miniporte pode verificar os sinalizadores na NBL de entrada.

Processamento de caminho de recebimento

Os drivers de miniporto devem definir sinalizadores na NBL antes de passar a NBL para o Serviço MB para pacotes recebidos.

Se o driver de miniporto implementar o Processamento bruto de pacotes IP durante a fase de desenvolvimento do driver, mas ainda tiver a falsificação do servidor DHCP habilitada (EnableDhcp = 1), o driver de miniporte deverá garantir o seguinte:

  • O endereço de hardware e seu conjunto de comprimento na resposta DHCP do driver de miniport devem corresponder aos valores dos membros CurrentMacAddress e MacAddressLength especificados pelo driver de miniporte na estrutura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.

  • A ID da transação (o membro xid ) da resposta DHCP do driver de miniport deve corresponder exatamente à ID da transação definida na mensagem de solicitação DHCP do cliente.