Compartilhar via


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

Chame a função NdisRetreatNetBufferDataStart para acessar mais de espaço de dados usado na cadeia de MDL de uma estrutura de NET_BUFFER.

Sintaxe

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

Parâmetros

[in] NetBuffer

Um ponteiro para uma estrutura de NET_BUFFER alocada anteriormente.

[in] DataOffsetDelta

A quantidade de espaço de dados usado para adicionar. O NDIS ajusta o DataOffset membro da estrutura de NET_BUFFER adequadamente. Se não houver espaço de dados não utilizado suficiente para atender à solicitação, o NDIS alocará memória adicional.

[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.

Valor de retorno

NdisRetreatNetBufferDataStart retorna um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart alocado com êxito de espaço de dados usado usando o espaço de dados não utilizado ou alocando um novo armazenamento.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferDataStart falharam devido a recursos insuficientes.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart falharam por motivos diferentes de recursos insuficientes.

Observações

NdisRetreatNetBufferDataStart tenta atender à solicitação reduzindo o valor do DataOffset membro da estrutura NET_BUFFER.

Se não houver espaço de dados não utilizado suficiente , essa função aloca um novo buffer e um MDL para descrever o novo buffer e encadeia o novo MDL para o início da cadeia de MDL. O NDIS chama a função NetAllocateMdl especificada em AllocateMdl para alocar o MDL e a memória. A função NetAllocateMdl pode usar qualquer método de alocação que atenda aos requisitos de design do driver.

Chamar o função NdisAdvanceNetBufferDataStart para liberar o de espaço de dados usado que foi adicionado com NdisRetreatNetBufferDataStart.

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

NdisAdvanceNetBufferDataStart

NetAllocateMdl