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

   
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Header ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

Consulte también

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists