Compartilhar via


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

Chame a função NdisRetreatNetBufferListDataStart para aumentar o de espaço de dados usado em todas as estruturas de NET_BUFFER em uma estrutura NET_BUFFER_LIST.

Sintaxe

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

Parâmetros

[in] NetBufferList

Um ponteiro para uma estrutura de NET_BUFFER_LIST alocada anteriormente.

[in] DataOffsetDelta

A quantidade de espaço de dados usado adicional em cada estrutura de NET_BUFFER. Se não houver espaço de dados não utilizado suficiente para atender à solicitação, o NDIS alocará mais memória.

[in] DataBackFill

Se o NDIS precisar alocar memória, esse parâmetro especificará a quantidade de espaço de dados além do valor do parâmetro DataOffsetDelta a ser alocado.

[in, optional] AllocateMdlHandler

Um ponto de entrada opcional para uma função NetAllocateMdl. Se o chamador especificar um ponto de entrada para a função NetAllocateMdl, o NDIS chamará NetAllocateMdl para alocar um MDL e uma memória.

[in, optional] FreeMdlHandler

Um ponto de entrada opcional para uma função NetFreeMdl. Se o chamador especificar um ponto de entrada para a função NetFreeMdl, o NDIS chamará NetFreeMdl para liberar um MDL e memória.

Valor de retorno

NdisRetreatNetBufferListDataStart retorna um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart alocou com êxito o espaço de dados em todas as estruturas de NET_BUFFER reduzindo o valor do membro dataoffset ou alocando um novo armazenamento.
NDIS_STATUS_RESOURCES
falha no NdisRetreatNetBufferListDataStart devido a recursos insuficientes.
NDIS_STATUS_FAILURE
falha no NdisRetreatNetBufferListDataStart por motivos diferentes de recursos insuficientes.

Observações

Chamar NdisRetreatNetBufferListDataStart é o equivalente a chamar o função NdisRetreatNetBufferDataStart para cada estrutura de NET_BUFFER na estrutura NET_BUFFER_LIST. NdisRetreatNetBufferListDataStart tenta atender à solicitação reduzindo o valor do membro DataOffset em cada estrutura NET_BUFFER. Se não houver espaço de dados não utilizado suficiente disponíveis, essa função alocará um novo buffer e MDL e, em seguida, encadeia o novo MDL para o início da cadeia de MDL na estrutura de NET_BUFFER.

Chamar o função NdisAdvanceNetBufferListDataStart para liberar o espaço de dados que foi reivindicado em uma chamada NdisRetreatNetBufferListDataStart anterior. Como alternativa, o driver pode chamar o função NdisAdvanceNetBufferDataStart para cada estrutura NET_BUFFER na estrutura NET_BUFFER_LIST. Chamar NdisAdvanceNetBufferListDataStart é mais eficiente.

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)

Consulte também

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl