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 miniporto 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 que NetBufferLists especifica.
[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 de Acompanhamento de IRQL de Expedição.
NDIS_RECEIVE_FLAGS_RESOURCES
O driver de miniporto recupera a propriedade das estruturas de NET_BUFFER_LIST e quaisquer estruturas de NET_BUFFER anexadas imediatamente após NdisMCoIndicateReceiveNetBufferLists retorna.
Valor de retorno
Nenhum
Observações
Um driver de miniporto normalmente chama a função NdisMCoIndicateReceiveNetBufferLists de sua função de 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 associar drivers de protocolo.
Os drivers de miniporto 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 de NET_BUFFER_LIST que NetBufferLists especificar ao driver do miniport 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 de NET_BUFFER_LIST à 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 miniporto para retornar as estruturas de 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 NdisMCoIndicateReceiveNetBufferLists retorna. Para recuperar as estruturas de NET_BUFFER_LIST, um driver de miniporto pode chamar de sua própria 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 miniport. Você deve projetar seus drivers de miniporto com estruturas de NET_BUFFER_LIST pré-alocadas 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 listas de descritores de memória anexadas (MDLs).