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