Función NdisMCoIndicateReceiveNetBufferLists (ndis.h)

La función NdisMCoIndicateReceiveNetBufferLists indica que el controlador de miniporte recibió datos de la red.

Sintaxis

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

Identificador que identifica una conexión virtual (VC). El controlador de minipuerto obtuvo este identificador como parámetro de entrada para su función MiniportCoCreateVc , ya sea cuando un cliente configuró una llamada saliente o cuando el administrador de llamadas creó un VC para un punto de acceso de servicio registrado por el cliente (SAP) para indicar una notificación de llamada entrante activada.

[in] NetBufferLists

Lista vinculada de estructuras de NET_BUFFER_LIST asignadas por el controlador de minipuerto.

[in] NumberOfNetBufferLists

Número de estructuras de NET_BUFFER_LIST que se encuentran en la lista vinculada de estructuras que especifica NetBufferLists .

[in] CoReceiveFlags

Marcas que definen atributos para la operación de envío. Las marcas se pueden combinar con una operación OR bit a bit. Para borrar todas las marcas, establezca este parámetro en cero. NdisMCoIndicateReceiveNetBufferLists admite las siguientes marcas:

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

El IRQL actual es DISPATCH_LEVEL. Para obtener más información sobre esta marca, vea Dispatch IRQL Tracking.

NDIS_RECEIVE_FLAGS_RESOURCES

El controlador de minipuerto reclama la propiedad de las estructuras de NET_BUFFER_LIST y las estructuras de NET_BUFFER adjuntas inmediatamente después de que NdisMCoIndicateReceiveNetBufferLists devuelva.

Valor devuelto

None

Observaciones

Normalmente, un controlador de minipuerto llama a la función NdisMCoIndicateReceiveNetBufferLists desde su función MiniportInterruptDPC . Cuando un controlador de minipuerto llama a NdisMCoIndicateReceiveNetBufferLists, especifica una lista de estructuras de NET_BUFFER_LIST en el parámetro NetBufferLists . A continuación, NDIS pasa las estructuras de NET_BUFFER_LIST a los controladores de protocolo enlazados.

Los controladores miniport deben establecer el miembro SourceHandle de cada estructura de NET_BUFFER_LIST en el mismo valor que el parámetro NdisVcHandle para que NDIS pueda devolver las estructuras de NET_BUFFER_LIST al controlador de miniporte correcto.

Si un controlador de minipuerto llama a NdisMCoIndicateReceiveNetBufferLists y borra la marca de NDIS_RECEIVE_FLAGS_RESOURCES en el parámetro CoReceiveFlags , NDIS devuelve las estructuras de NET_BUFFER_LIST que NetBufferLists especifica para el controlador de miniporte. Función MiniportReturnNetBufferLists . En este caso, el controlador de minipuerto no debe reclamar las estructuras de NET_BUFFER_LIST hasta que NDIS devuelva las estructuras NET_BUFFER_LIST a la función MiniportReturnNetBufferLists del controlador de miniporte.

Si un controlador de minipuerto llama a NdisMCoIndicateReceiveNetBufferLists y establece la marca NDIS_RECEIVE_FLAGS_RESOURCES en el parámetro CoReceiveFlags , el controlador de miniporte debe recuperar la propiedad de las estructuras de NET_BUFFER_LIST inmediatamente. En este caso, NDIS no llama a la función MiniportReturnNetBufferLists del controlador de miniport para devolver las estructuras de NET_BUFFER_LIST. En su lugar, NDIS devuelve las estructuras de NET_BUFFER_LIST al controlador de miniporte cuando devuelve NdisMCoIndicateReceiveNetBufferLists . El controlador de minipuerto debe reclamar las estructuras de NET_BUFFER_LIST inmediatamente después de que se devuelva NdisMCoIndicateReceiveNetBufferLists . Para reclamar las estructuras NET_BUFFER_LIST, un controlador de minipuerto puede llamar a su propio Función MiniportReturnNetBufferLists .

Si un controlador de minipuerto establece la marca NDIS_RECEIVE_FLAGS_RESOURCES en el parámetro CoReceiveFlags , los controladores de protocolo deben copiar los datos de red y liberar las estructuras de NET_BUFFER_LIST en el controlador de minipuerto. Debe diseñar los controladores de miniporte con suficientes estructuras de NET_BUFFER_LIST previamente asignados para evitar la copia innecesaria.

El autor de la llamada de NdisMCoIndicateReceiveNetBufferLists debe inicializar correctamente las estructuras de NET_BUFFER_LIST, las estructuras de NET_BUFFER adjuntas y las listas de descriptores de memoria adjuntas (MDL).

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_MCO_Function(ndis)

Consulte también

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST