Compartilhar via


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

Chame a função NdisRetreatNetBufferListDataStart para aumentar o 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 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 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.

Retornar valor

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 NET_BUFFER reduzindo o valor do membro DataOffset ou alocando um novo armazenamento.
NDIS_STATUS_RESOURCES
Falha em NdisRetreatNetBufferListDataStart devido a recursos insuficientes.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferListDataStart falhou por motivos diferentes de recursos insuficientes.

Comentários

Chamar NdisRetreatNetBufferListDataStart é o equivalente a chamar o Função NdisRetreatNetBufferDataStart para cada estrutura NET_BUFFER na estrutura NET_BUFFER_LIST . NdisRetreatNetBufferListDataStart tenta atender à solicitação reduzindo o valor do membro DataOffset em cada estrutura de NET_BUFFER. Se não houver espaço de dados não utilizado suficiente disponível, 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 NET_BUFFER.

Chamar o Função NdisAdvanceNetBufferListDataStart para liberar o espaço de dados que foi reivindicado em uma chamada anterior de NdisRetreatNetBufferListDataStart . 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
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 de DDI Irql_NetBuffer_Function(ndis)

Confira também

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl