Condividi tramite


Indicazione dei frame Ethernet ricevuti

Il driver di protocollo TCP/IP di Windows impone un set di requisiti per la ricezione di frame Ethernet. Qualsiasi driver che genera o modifica le indicazioni di ricezione dei frame Ethernet o dei driver sottostanti deve supportare i requisiti generali imposti da TCP/IP. Questi driver includono driver miniport Ethernet, driver intermediari MUX e driver di filtro.

Nota Se un driver non soddisfa questi requisiti, i driver eccessivamente complessi (ad esempio il trasporto TCP/IP, i driver intermedi MUX e i driver di filtro) potrebbero comportarsi in modo imprevedibile.

I driver che generano indicazioni di ricezione Ethernet devono supportare i seguenti requisiti:

  • Il driver deve allocare una struttura NET_BUFFER_LIST per il frame Ethernet ricevuto. Ogni struttura NET_BUFFER_LIST deve includere i dati fuori banda (OOB) definiti nel membro NetBufferListInfo del NET_BUFFER_LIST necessario per l'uso particolare.

  • Il driver deve allocare una struttura NET_BUFFER per il frame e collegarla a una struttura NET_BUFFER_LIST. Il miniport Ethernet deve assegnare esattamente una struttura NET_BUFFER a una struttura NET_BUFFER_LIST quando si indicano i dati ricevuti. Questa restrizione si applica solo al percorso di ricezione Ethernet. Non è applicabile agli altri tipi di media, come l'interfaccia LAN wireless nativa 802.11. o NDIS in generale.

  • A partire da NDIS 6.1, in determinati scenari, una struttura NET_BUFFER può essere associata a più elenchi di descrittori di memoria (MDLs) per il frame Ethernet ricevuto. Anche se una struttura NET_BUFFER_LIST deve contenere una singola struttura NET_BUFFER, l'uso di più dll consente al driver di suddividere i dati dei pacchetti ricevuti in buffer separati.

    Ad esempio, i driver Ethernet che supportano l'interfaccia di suddivisione dei dati di intestazione suddividono un frame Ethernet ricevuto usando una lista concatenata di più MDLs associati a una singola struttura NET_BUFFER. Per altre informazioni, vedere Header-Data Split.

    Per motivi di semplicità e prestazioni, è consigliabile che i driver che non supportano la suddivisione dei dati di intestazione usino un solo MDL per ogni struttura NET_BUFFER.

    Nota In NDIS 6.0 per Windows Vista, ogni struttura NET_BUFFER deve contenere un solo MDL.

  • I driver non devono suddividere i frame Ethernet ricevuti nel mezzo dell'intestazione IP, delle opzioni IPv4, delle intestazioni IPsec, delle intestazioni di estensione IPv6 o delle intestazioni del protocollo di livello superiore, a meno che il primo MDL non contenga almeno il numero di byte specificato da NDIS per le dimensioni della previsione.

Il protocollo NDIS e i driver di filtro devono supportare la divisione dei frame Ethernet nelle indicazioni di ricezione se tali frame suddivisi sono conformi alle restrizioni definite nella voce di elenco precedente. Le restrizioni assicurano che i driver di protocollo e filtro siano compatibili con le versioni future di Windows.