Condividi tramite


Supporto per la suddivisione Header-Data nei driver di protocollo e di filtro

I driver di protocollo e i driver di filtro NDIS 6.0 e versioni successive devono supportare la ricezione di segnalazioni con l'intestazione e i dati in buffer di memoria non contigui.

Non è necessario presupporre che vi sia un solo MDL in una struttura NET_BUFFER. I driver di protocollo e i driver di filtro non sono necessari per eseguire operazioni specifiche per supportare la registrazione divisa dei dati di intestazione. Tuttavia, il codice di gestione della ricezione del driver deve gestire più MDL nella catena MDL e deve usare le macro NDIS seguenti per accedere alla catena MDL:

Con i buffer divisi, la lunghezza dei dati associata alla struttura di NET_BUFFER (nel membro DataLength della struttura di NET_BUFFER_DATA) viene divisa tra più mdls. Ad esempio, se un driver di protocollo ha tentato di accedere all'intero buffer di dati nel primo file MDL, il driver potrebbe accedere a dati non validi.

Nota Dopo il ritorno della chiamata di indicazione di ricezione a un driver miniport, il driver miniport può recuperare gli MDL di intestazione. I driver overlying o i relativi client non devono accedere agli MDL di intestazione dopo che la chiamata di indicazione di ricezione torna al driver miniport. Questa restrizione si applica anche nel caso in cui il driver miniport non indichi i dati ricevuti con lo stato NDIS_RECEIVE_FLAGS_RESOURCES.