Supporto per l'elaborazione dei pacchetti IP non elaborati MB
I driver miniport MB che supportano i frame di pacchetti IP non elaborati nel percorso dati di invio/ricezione devono osservare le linee guida seguenti:
Flag NBL (Net buffer list) per l'elaborazione dei pacchetti IP RAW
Per i pacchetti IPv4:
Il membro NblFlags della struttura NET_BUFFER_LIST deve essere impostato su NDIS_NBL_FLAGS_IS_IPV4.
Il membro NetBufferListFrameType della struttura NET_BUFFER_LIST deve essere impostato su 0x0800 (Ethertype IPv4) nell'ordine di byte di rete.
Per i pacchetti IPv6:
Il membro NblFlags della struttura NET_BUFFER_LIST deve essere impostato su NDIS_NBL_FLAGS_IS_IPV6.
Il membro NetBufferListFrameType della struttura NET_BUFFER_LIST deve essere impostato su 0x86dd (Ethertype IPv6) nell'ordine di byte di rete.
I driver Miniport possono usare la macro NdisSetNblFlag per impostare i flag nell'elenco di buffer net. La riga seguente illustra come impostare il flag di pacchetti IPv4 nell'elenco di buffer net:
NdisSetNblFlag(pNbl, NDIS_NBL_FLAGS_IS_IPV4);
I driver miniport possono usare il NET_BUFFER_LIST_INFO per ottenere e impostare informazioni in un elenco di buffer net. La riga seguente illustra come modificare l'OOB NetBufferListFrameType nell'elenco del buffer di rete per i pacchetti IPV4:
Value = ConvertToNetworkByteOrder(0x0800);
NET_BUFFER_LIST_INFO(pNbl, NetBufferListFrameType) = Value;
Elaborazione percorso di invio
Il servizio MB imposta questi flag nella NBL prima di passare l'elenco al driver miniport da inviare in rete. Il driver miniport può verificare i flag nel NBL di input.
Elaborazione percorso di ricezione
I driver Miniport devono impostare i flag nella NBL prima di passare il NBL al servizio MB per i pacchetti ricevuti.
Se il driver miniport implementa l'elaborazione dei pacchetti IP non elaborati durante la fase di sviluppo del driver, ma ha ancora lo spoofing del server DHCP abilitato (EnableDhcp = 1), il driver miniport deve garantire quanto segue:
L'indirizzo hardware e la relativa lunghezza impostata in risposta DHCP dal driver miniport devono corrispondere ai valori dei membri CurrentMacAddress e MacAddressLength specificati dal driver miniport nella struttura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.
ID transazione (membro xid ) della risposta DHCP dal driver miniport deve corrispondere esattamente all'ID transazione impostato nel messaggio di richiesta DHCP dal client.