Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un driver NDIS crea una struttura NET_BUFFER_LIST clonata da una struttura di NET_BUFFER_LIST esistente. La struttura clonata fa riferimento ai dati delle strutture originali. I driver possono usare questo tipo di struttura per trasferire in modo efficiente gli stessi dati in più percorsi.
Nella figura seguente viene illustrata la relazione tra una struttura padre NET_BUFFER_LIST e una struttura figlio clonata.
La figura precedente contiene una struttura padre NET_BUFFER_LIST e una struttura figlio derivata da tale padre. La struttura padre ha una struttura NET_BUFFER_LIST_CONTEXT e una struttura NET_BUFFER con MDLs collegate. Il puntatore padre della struttura padre è NULL che indica che non è una struttura derivata.
La struttura figlia NET_BUFFER_LIST ha una struttura NET_BUFFER con i MDL collegati. Il NET_BUFFER_LIST child ha un puntatore alla struttura padre. Il NULL, dove ci sarebbe un puntatore alla struttura NET_BUFFER_LIST_CONTEXT, indica che l'elemento figlio non ha una struttura NET_BUFFER_LIST_CONTEXT.
I driver chiamano la funzione NdisAllocateCloneNetBufferList per creare un clone della struttura NET_BUFFER_LIST. NDIS alloca nuove strutture NET_BUFFER e MDL con la struttura NET_BUFFER_LIST clonata. NDIS non alloca una struttura NET_BUFFER_LIST_CONTEXT per la struttura clonata. Le nuove strutture NET_BUFFER e mdls descrivono gli stessi dati della struttura padre. I dati non sono stati copiati.
I driver chiamano la funzione NdisFreeCloneNetBufferList per liberare una struttura NET_BUFFER_LIST e tutte le strutture NET_BUFFER associate e le catene MDL precedentemente allocate chiamando NdisAllocateCloneNetBufferList.