Compartilhar via


Função NdisAllocateReassembledNetBufferList (ndis/nblapi.h)

Chame a função NdisAllocateReassembledNetBufferList para remontar uma estrutura de NET_BUFFER_LIST fragmentada.

Sintaxe

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateReassembledNetBufferList(
                 NET_BUFFER_LIST *FragmentNetBufferList,
  [in, optional] NDIS_HANDLE     NetBufferAndNetBufferListPoolHandle,
  [in]           ULONG           StartOffset,
  [in]           ULONG           DataOffsetDelta,
  [in]           ULONG           DataBackFill,
  [in]           ULONG           AllocateReassembleFlags
);

Parâmetros

FragmentNetBufferList

Um ponteiro para a estrutura NET_BUFFER_LIST a ser remontada.

[in, optional] NetBufferAndNetBufferListPoolHandle

Um identificador de pool de estrutura NET_BUFFER_LIST que foi retornado anteriormente do função de NdisAllocateNetBufferListPool. O fAllocateNetBuffer membro da estrutura NET_BUFFER_LIST_POOL_PARAMETERS que o chamador passou para NdisAllocateNetBufferListPool deve ter sido definido como verdadeiroe o membro DataSize definido como zero. Se esse parâmetro for NULL, o NDIS usará um pool interno.

[in] StartOffset

A quantidade de dados a serem ignoradas no início de cada estrutura de NET_BUFFER de origem. Esse valor é além do valor especificado no DataOffset membro da estrutura NET_BUFFER.

[in] DataOffsetDelta

O número de bytes de espaço de dados usado para adicionar na estrutura de NET_BUFFER remontada.

[in] DataBackFill

Se a alocação de espaço de dados não utilizado (espaço em backfill) for necessária, esse parâmetro especificará o número de bytes de espaço de dados não utilizado além de dataOffsetDelta para alocar.

[in] AllocateReassembleFlags

Sinalizadores NDIS que podem ser combinados com uma operação OR. Defina esse parâmetro como zero. No momento, não há nenhum sinalizador definido para essa função.

Valor de retorno

Se a operação de remontagem for bem-sucedida, NdisAllocateReassembledNetBufferList retornará uma estrutura de NET_BUFFER_LIST remontada. Se a operação falhar, ela retornará NULL.

Observações

NdisAllocateReassembledNetBufferList aloca, inicializa e retorna uma nova estrutura de NET_BUFFER_LIST que inclui uma estrutura NET_BUFFER e uma cadeia de MDL. A nova estrutura de NET_BUFFER_LIST descreve os mesmos dados que a estrutura de NET_BUFFER_LIST de origem fragmentada que o driver passou em FragmentedNetBufferList. Depois de ignorar o número de bytes especificado em StartOffset em cada estrutura de NET_BUFFER fragmentada, o NDIS concatena os dados restantes em cada estrutura de NET_BUFFER fragmentada em uma estrutura de NET_BUFFER remontada. Estruturas de NET_BUFFER_LIST remontadas não incluem uma inicial NET_BUFFER_LIST_CONTEXT estrutura.

Chamar o função NdisFreeReassembledNetBufferList para liberar uma estrutura de NET_BUFFER_LIST remontada e todas as estruturas de NET_BUFFER associadas e cadeias de MDL.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da Plataforma de Destino Universal
cabeçalho ndis/nblapi.h (inclua ndis.h)
biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI Irql_NetBuffer_Function(ndis), NdisAllocateReassembledNetBufferList(ndis), NdisAllocateReassembledNetBufferList_InitFail(ndis)

Consulte também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool NdisFreeReassembledNetBufferList