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) |