Estruturas de NET_BUFFER_LIST derivadas

O NDIS fornece funções que os drivers podem usar para gerenciar NET_BUFFER_LIST estruturas derivadas de outras estruturas NET_BUFFER_LIST. Normalmente, essas funções são usadas por drivers intermediários.

As seguintes funções NDIS podem criar estruturas de NET_BUFFER_LIST derivadas de uma estrutura de NET_BUFFER_LIST existente:

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisAllocateReassembledNetBufferList

Essas funções melhoram o desempenho do sistema porque o NDIS cria as estruturas derivadas sem copiar os dados de rede. Há três tipos de estruturas de NET_BUFFER_LIST que podem ser derivadas de uma estrutura NET_BUFFER_LIST existente:

Clone
Uma estrutura de NET_BUFFER_LIST clonada é uma duplicata que faz referência aos dados originais. Os drivers podem usar esse tipo de estrutura para transferir com eficiência os mesmos dados para vários caminhos.

Fragmento
Uma estrutura de NET_BUFFER_LIST de fragmentos inclui um conjunto de estruturas de NET_BUFFER que fazem referência aos dados originais; no entanto, os dados são divididos em unidades que não excedem um tamanho máximo. Os drivers podem usar esse tipo de estrutura para dividir com eficiência buffers grandes em buffers menores.

Remontado
Uma estrutura de NET_BUFFER_LIST remontada contém uma estrutura NET_BUFFER que faz referência aos dados originais de várias estruturas de NET_BUFFER de origem. Os drivers podem usar esse tipo de estrutura para combinar com eficiência muitos buffers menores em um único buffer grande.

Estes tópicos a seguir fornecem mais informações sobre estruturas de NET_BUFFER_LIST derivadas: