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 do pool de estrutura NET_BUFFER_LIST que foi retornado anteriormente do Função NdisAllocateNetBufferListPool . O membro fAllocateNetBuffer da estrutura NET_BUFFER_LIST_POOL_PARAMETERS que o chamador passou para NdisAllocateNetBufferListPool deve ter sido definido como TRUE e 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 é adicional ao valor especificado no membro DataOffset da estrutura NET_BUFFER.

[in] DataOffsetDelta

O número de bytes de espaço de dados usados a serem adicionados à estrutura de NET_BUFFER remontada.

[in] DataBackFill

Se a alocação de espaço de dados não utilizado (espaço de 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 a ser alocado.

[in] AllocateReassembleFlags

Sinalizadores NDIS que podem ser combinados com uma operação OR. Defina esse parâmetro como zero. Atualmente, não há sinalizadores definidos para essa função.

Retornar valor

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.

Comentários

NdisAllocateReassembledNetBufferList aloca, inicializa e retorna uma nova estrutura 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 A função NdisFreeReassembledNetBufferList libera uma estrutura de NET_BUFFER_LIST remontada e todas as estruturas de NET_BUFFER associadas e cadeias de MDL.

Requisitos

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

Confira também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool NdisFreeReassembledNetBufferList