Função NdisCancelSendNetBufferLists (ndis.h)

Os drivers de protocolo chamam a função NdisCancelSendNetBufferLists para cancelar a transmissão de dados de rede.

Sintaxe

void NdisCancelSendNetBufferLists(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

Parâmetros

[in] NdisBindingHandle

O identificador retornado pela função NdisOpenAdapterEx que identifica o driver de miniporto ou o miniporto virtual ao qual o cancelamento se aplica.

[in] CancelId

O identificador de cancelamento. Esse identificador especifica os dados de rede para os quais a transmissão está sendo cancelada.

Retornar valor

Nenhum

Comentários

Um driver de protocolo mapeia IRPs que ele recebe de software de nível superior para dados de rede NDIS. Uma lista de estruturas de NET_BUFFER_LIST descreve os dados de rede que o driver de protocolo envia para drivers de nível inferior para transmissão. Se um IRP for cancelado, um driver de protocolo poderá chamar a função NdisCancelSendNetBufferLists para cancelar a transmissão pendente dos dados de rede NDIS correspondentes.

Chamar o NDIS_SET_NET_BUFFER_LIST_CANCEL_ID macro para cada estrutura de NET_BUFFER_LIST que é passada para drivers de nível inferior para transmissão. A macro NDIS_SET_NET_BUFFER_LIST_CANCEL_ID marca o pacote especificado com um identificador de cancelamento.

NdisCancelSendNetBufferLists cancela a transmissão de todos os dados marcados com o identificador de cancelamento especificado e associado ao driver de miniporto especificado. O identificador de associação especificado no parâmetro NdisBindingHandle identifica o driver de miniporto.

A função NdisCancelSendNetBufferLists cancela transmissões de dados de rede em uma única associação. Para cancelar transmissões de dados de rede em mais de uma associação, um driver de protocolo deve chamar a função NdisCancelSendNetBufferLists uma vez para cada associação.

O driver de protocolo deve garantir que o identificador especificado pelo parâmetro NdisBindingHandle permaneça válido durante a chamada para NdisCancelSendNetBufferLists. Ou seja, o driver de protocolo não deve chamar a função NdisCloseAdapterEx para fechar a associação antes que NdisCancelSendNetBufferLists retorne.

Não há garantia de que chamar NdisCancelSendNetBufferLists cancelará a transmissão pendente de todos os dados de rede com o identificador de cancelamento especificado. Por exemplo, se o driver mais baixo ao qual o driver de protocolo está associado não fornecer uma função MiniportCancelSend , uma chamada para NdisCancelSendNetBufferLists não fará nada.

Em todos os casos, o NDIS retorna dados de rede que foram enviados para transmissão para o driver de protocolo de origem Função ProtocolSendNetBufferListsComplete . O NDIS retorna dados de envio cancelados com uma status de conclusão de NDIS_STATUS_SEND_ABORTED. O atraso entre chamar NdisCancelSendNetBufferLists e o retorno das estruturas de NET_BUFFER_LIST canceladas pode variar e, portanto, não pode ser exatamente especificado.

Requisitos

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

Confira também

MiniportCancelSend

NDIS_SET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER_LIST

NdisCloseAdapterEx

NdisOpenAdapterEx

ProtocolSendNetBufferListsComplete