Función NdisMSendNetBufferListsComplete (ndis.h)
Los controladores de minipuerto llaman a la función NdisMSendNetBufferListsComplete para devolver una lista vinculada de estructuras de NET_BUFFER_LIST a un controlador de sobreasignación y devolver el estado final de una solicitud de envío.
Sintaxis
void NdisMSendNetBufferListsComplete(
[in] NDIS_HANDLE MiniportAdapterHandle,
PNET_BUFFER_LIST NetBufferList,
[in] ULONG SendCompleteFlags
);
Parámetros
[in] MiniportAdapterHandle
Controlador de minipuerto que NDIS pasó a la función MiniportInitializeEx .
NetBufferList
Puntero a una lista vinculada de estructuras de NET_BUFFER_LIST. El controlador de minipuerto recibió las estructuras NET_BUFFER_LIST en las llamadas anteriores a su función MiniportSendNetBufferLists .
[in] SendCompleteFlags
Marcas NDIS que se pueden combinar con una operación OR. Para borrar todas las marcas, establezca este miembro en cero. Esta función admite la marca NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL que; si se establece, indica que el IRQL actual es DISPATCH_LEVEL. Para obtener más información sobre esta marca, vea Dispatch IRQL Tracking.
Valor devuelto
None
Observaciones
Un controlador de minipuerto llama a NdisMSendNetBufferListsComplete para completar las solicitudes de envío realizadas por NDIS a la función MiniportSendNetBufferLists del controlador. El controlador de minipuerto especifica una lista vinculada de estructuras de NET_BUFFER_LIST asociadas a las solicitudes de envío completadas. Aunque el estado de las solicitudes de envío está pendiente, el controlador de minipuerto conserva la propiedad de las estructuras de NET_BUFFER_LIST y todos los recursos asignados por protocolo que están asociados a las estructuras de NET_BUFFER_LIST.
Después de que un controlador de minipuerto llame a NdisMSendNetBufferListsComplete, NDIS llama a la función ProtocolSendNetBufferListsComplete del controlador que llamó a la función NdisSendNetBufferLists para iniciar la solicitud de envío.
El controlador de minipuerto puede completar las solicitudes de envío en cualquier orden. Por ejemplo, el controlador de minipuerto podría concatenar las listas de estructura de NET_BUFFER_LIST de varias llamadas MiniportSendNetBufferLists o dividir una lista de una llamada a MiniportSendNetBufferLists . Sin embargo, el controlador de minipuerto no debe modificar la lista de estructuras de NET_BUFFER asociadas a una estructura de NET_BUFFER_LIST.
El controlador de minipuerto debe establecer uno de los siguientes códigos de estado en el miembro Status de cada estructura de NET_BUFFER_LIST que especifica el parámetro NetBufferLists :
Estructura | Descripción |
---|---|
NDIS_STATUS_SUCCESS | Todos los datos de red que describe la estructura NET_BUFFER_LIST y las estructuras de NET_BUFFER asociadas se procesaron correctamente para la transmisión. Por ejemplo, el controlador de minipuerto copió los datos en una cola o los datos ya se han transmitido. |
NDIS_STATUS_INVALID_LENGTH | El tamaño de los datos en algunas estructuras de NET_BUFFER asociadas a esta estructura de NET_BUFFER_LIST era demasiado grande para la NIC subyacente. |
NDIS_STATUS_RESOURCES | Error en la solicitud de envío de esta estructura de NET_BUFFER_LIST debido a recursos insuficientes. |
NDIS_STATUS_PAUSED | El adaptador de minipuerto está en estado Pausado, como se describe en la página de referencia de la función MiniportPause. |
NDIS_STATUS_SEND_ABORTED | NDIS llamó a la función MiniportCancelSend para cancelar la operación de envío de esta estructura de NET_BUFFER_LIST. |
NDIS_STATUS_RESET_IN_PROGRESS | El controlador de minipuerto anuló la solicitud de envío debido a un restablecimiento. |
NDIS_STATUS_FAILURE | El controlador de minipuerto produjo un error en la solicitud de envío debido a algún motivo distinto de los descritos anteriormente. Por ejemplo, el controlador de minipuerto puede producir un error en la solicitud de envío debido a un error de hardware. |
Una llamada del controlador miniporte a NdisMSendNetBufferListsComplete no significa necesariamente que los datos de una solicitud de envío se hayan transmitido a través de la red. Los datos se pueden poner en cola en el hardware de la NIC.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend |