Compartilhar via


Função NdisMCoIndicateReceiveNetBufferLists (ndis.h)

A função NdisMCoIndicateReceiveNetBufferLists indica que o driver de miniporto recebeu dados da rede.

Sintaxe

void NdisMCoIndicateReceiveNetBufferLists(
  [in] IN NDIS_HANDLE      NdisVcHandle,
  [in] IN PNET_BUFFER_LIST NetBufferLists,
  [in] IN ULONG            NumberOfNetBufferLists,
  [in] IN ULONG            CoReceiveFlags
);

Parâmetros

[in] NdisVcHandle

Um identificador que identifica uma VC (conexão virtual). O driver de miniporte obteve esse identificador como um parâmetro de entrada para sua função MiniportCoCreateVc , quando um cliente configurou uma chamada de saída ou quando o gerenciador de chamadas criou uma VC para um SAP (ponto de acesso de serviço registrado pelo cliente) para indicar uma notificação de chamada de entrada.

[in] NetBufferLists

Uma lista vinculada de estruturas de NET_BUFFER_LIST alocadas pelo driver de miniporto.

[in] NumberOfNetBufferLists

O número de estruturas NET_BUFFER_LIST que estão na lista vinculada de estruturas especificadas pelo NetBufferLists .

[in] CoReceiveFlags

Sinalizadores que definem atributos para a operação de envio. Os sinalizadores podem ser combinados com uma operação OR bit a bit. Para limpar todos os sinalizadores, defina esse parâmetro como zero. NdisMCoIndicateReceiveNetBufferLists dá suporte aos seguintes sinalizadores:

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

O IRQL atual é DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte Dispatch IRQL Tracking.

NDIS_RECEIVE_FLAGS_RESOURCES

O driver de miniporto recupera a propriedade das estruturas de NET_BUFFER_LIST e quaisquer estruturas NET_BUFFER anexadas imediatamente após o retorno de NdisMCoIndicateReceiveNetBufferLists .

Retornar valor

Nenhum

Comentários

Um driver de miniporto normalmente chama a função NdisMCoIndicateReceiveNetBufferLists de sua função MiniportInterruptDPC . Quando um driver de miniporto chama NdisMCoIndicateReceiveNetBufferLists, ele especifica uma lista de estruturas de NET_BUFFER_LIST no parâmetro NetBufferLists . Em seguida, o NDIS passa as estruturas de NET_BUFFER_LIST para os drivers de protocolo associados.

Os drivers de miniport devem definir o membro SourceHandle de cada estrutura NET_BUFFER_LIST com o mesmo valor que o parâmetro NdisVcHandle para que o NDIS possa retornar as estruturas de NET_BUFFER_LIST para o driver de miniporto correto.

Se um driver de miniporto chamar NdisMCoIndicateReceiveNetBufferLists e limpar o sinalizador NDIS_RECEIVE_FLAGS_RESOURCES no parâmetro CoReceiveFlags , o NDIS retornará as estruturas NET_BUFFER_LIST especificadas pelo NetBufferLists para o driver de miniporte Função MiniportReturnNetBufferLists . Nesse caso, o driver de miniporto não deve recuperar as estruturas de NET_BUFFER_LIST até que o NDIS retorne as estruturas NET_BUFFER_LIST para a função MiniportReturnNetBufferLists do driver de miniport.

Se um driver de miniporto chamar NdisMCoIndicateReceiveNetBufferLists e definir o sinalizador NDIS_RECEIVE_FLAGS_RESOURCES no parâmetro CoReceiveFlags , o driver de miniporto deverá recuperar a propriedade das estruturas NET_BUFFER_LIST imediatamente. Nesse caso, o NDIS não chama a função MiniportReturnNetBufferLists do driver de miniport para retornar as estruturas NET_BUFFER_LIST. Em vez disso, o NDIS retorna as estruturas de NET_BUFFER_LIST para o driver de miniporto quando NdisMCoIndicateReceiveNetBufferLists retorna. O driver de miniporto deve recuperar as estruturas de NET_BUFFER_LIST imediatamente após o retorno de NdisMCoIndicateReceiveNetBufferLists . Para recuperar as estruturas NET_BUFFER_LIST, um driver de miniporte pode chamar de seu próprio Função MiniportReturnNetBufferLists .

Se um driver de miniporto definir o sinalizador NDIS_RECEIVE_FLAGS_RESOURCES no parâmetro CoReceiveFlags , os drivers de protocolo deverão copiar os dados de rede e liberar as estruturas de NET_BUFFER_LIST para o driver de miniporte. Você deve projetar seus drivers de miniporte com estruturas de NET_BUFFER_LIST prealcalizadas suficientes para evitar cópias desnecessárias.

O chamador de NdisMCoIndicateReceiveNetBufferLists deve inicializar corretamente as estruturas de NET_BUFFER_LIST, as estruturas de NET_BUFFER anexadas e quaisquer MDLs (listas de descritores de memória) anexadas.

Requisitos

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

Confira também

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST