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.