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.
I driver Miniport chiamano in genere NdisAllocateNetBufferListPool da MiniportInitializeEx per creare un pool di strutture NET_BUFFER_LIST . I driver Miniport usano queste strutture per indicare i dati ricevuti.
In genere, un driver miniport che alloca una struttura NET_BUFFER_LIST allocherà e accoderà su tale struttura NET_BUFFER_LIST una struttura NET_BUFFER. È più efficiente preallocare strutture NET_BUFFER quando si alloca un pool di strutture NET_BUFFER_LIST piuttosto che allocare separatamente le strutture NET_BUFFER_LIST e NET_BUFFER.
I driver Miniport possono chiamare NdisAllocateNetBufferListPool e impostare il parametro AllocateNetBuffer su TRUE per indicare che le strutture NET_BUFFER sono preallocate. In questo caso, una struttura NET_BUFFER viene preallocata con ogni struttura NET_BUFFER_LIST allocata dal driver dal pool. Tali driver devono chiamare NdisAllocateNetBufferAndNetBufferList per allocare strutture da questo pool.
In genere, un driver miniport chiama NdisAllocateNetBufferAndNetBufferList da MiniportInitializeEx per allocare il numero di buffer necessari per le operazioni di ricezione successive. In questo caso, il driver gestisce un elenco interno di buffer liberi.
La funzione MiniportReturnNetBufferLists può preparare una struttura di NET_BUFFER_LIST restituita per il riutilizzo in un'indicazione di ricezione successiva. Anche se MiniportReturnNetBufferLists potrebbe restituire le strutture NET_BUFFER_LIST a un pool (ad esempio, potrebbe chiamare NdisFreeNetBufferList), può essere più efficiente riutilizzare le strutture senza restituirle al pool.
Un driver miniport deve liberare tutte le strutture NET_BUFFER_LIST e i dati associati quando NDIS arresta l'adattatore. Un driver può chiamare NdisFreeNetBufferList per liberare le strutture e la funzione NdisFreeNetBufferListPool per liberare il pool di NET_BUFFER_LIST.