Compartir a través de


NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE función de devolución de llamada (ndischimney.h)

[La característica de descarga de chimenea TCP está en desuso y no debe usarse].

Un destino de descarga llama a la función NdisTcpOffloadReceiveComplete para devolver solicitudes de recepción publicadas (búferes de recepción) a la pila de hosts. El destino de descarga recibió previamente las solicitudes de recepción en una o varias llamadas a su función miniportTcpOffloadReceive.

Sintaxis

NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE NdisTcpOffloadReceiveComplete;

void NdisTcpOffloadReceiveComplete(
  [in] IN NDIS_HANDLE NdisMiniportHandle,
  [in] IN PNET_BUFFER_LIST NetBufferList
)
{...}

Parámetros

[in] NdisMiniportHandle

Identificador del destino de descarga obtenido en una llamada anterior a . función NdisMRegisterMiniportDriver.

[in] NetBufferList

Puntero a una estructura NET_BUFFER_LIST. Esta estructura puede ser independiente o la primera estructura de una lista vinculada de NET_BUFFER_LIST estructuras. El destino de descarga obtuvo estas estructuras en una o varias llamadas a su función miniportTcpOffloadReceive.

Valor devuelto

Ninguno

Observaciones

Un destino de descarga debe usar y devolver solicitudes de recepción prepostadas en el orden en el que las solicitudes se publicaron en el función miniportTcpOffloadReceive del destino de descarga. Es decir, el destino de descarga debe usar y devolver solicitudes de recepción prepostadas en primer lugar en, primero en salir (FIFO).

Un destino de descarga debe serializar las llamadas a la función NdisTcpOffloadReceiveComplete y a la función de NdisTcpOffloadReceiveHandler por -connection.

Se puede llamar a la función miniportTcpOffloadReceive de un destino de descarga en el contexto de la llamada de un destino de descarga a la función NdisTcpOffloadReceiveComplete. En este caso, un destino de descarga no debe llamar a la NdisTcpOffloadReceiveComplete función hasta que se haya devuelto la llamada anterior a NdisTcpOffloadReceiveComplete.

Para mejorar el rendimiento del sistema, un destino de descarga puede crear una lista vinculada que contenga las estructuras de NET_BUFFER_LIST de varias llamadas a su función miniportTcpOffloadReceive. El destino de descarga puede pasar una lista vinculada de este tipo en una sola llamada a la función NdisTcpOffloadReceiveComplete. Tenga en cuenta que, un destino de descarga puede distribuir las solicitudes de recepción que se publicaron en una sola llamada a . miniportTcpOffloadReceive función en más de una llamada de finalización mientras el destino de descarga completa las solicitudes de recepción en el mismo orden en que se publicaron en la función MiniportTcpOffloadReceive.

Antes de llamar a la función NdisTcpOffloadReceiveComplete, el destino de descarga realiza lo siguiente para cada estructura de NET_BUFFER_LIST que pasa a la función:

  • Escribe uno de los siguientes valores de estado en el miembro Estado:
    NDIS_STATUS_SUCCESS
    El destino de descarga recibió todos los datos asociados a las estructuras de NET_BUFFER_LIST a las que hace referencia el parámetro NetBufferList. El destino de descarga también ha avanzado las variables de RcvNxt y RcvWnd en el estado delegado tcp para la conexión TCP. Es posible que el destino de descarga haya generado o no una confirmación para los datos recibidos, en función de si el destino de descarga está esperando enviar una confirmación retrasada.
    NDIS_STATUS_REQUEST_ABORTED
    Se produjo un error mientras el destino de descarga estaba procesando los datos recibidos. Si el destino de descarga proporciona algunos datos válidos con las estructuras de NET_BUFFER_LIST a las que apunta el parámetro NetBufferList, el destino de descarga especifica el número de bytes de datos válidos llamando a la macro NET_BUFFER_LIST_INFO. El destino de descarga podría o no haber confirmado alguna parte de los datos recibidos.
    NDIS_STATUS_UPLOAD_IN_PROGRESS
    La conexión en la que se publicó el búfer se está cargando.
    NDIS_STATUS_INVALID_STATE
    La solicitud de recepción se publicó después de que el destino de descarga indicara una desconexión llamando a NdisTcpOffloadEventHandler.
  • Especifica el número de bytes de datos devueltos llamando a la macro de NET_BUFFER_LIST_INFO con un identificador de de TcpOffloadBytesTransferred.
  • Llama a función NdisAdvanceNetBufferDataStart. El parámetro NetBufferList debe apuntar a la estructura NET_BUFFER asociada a la estructura NET_BUFFER_LIST. El parámetro DataOffsetDelta debe especificar el número de bytes de datos que el destino de descarga coloca en las listas de descriptores de memoria (MDL) asociadas a la estructura NET_BUFFER. El parámetro FreeMdl debe ser NULL.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ndischimney.h (incluya Ndischimney.h)
irQL Cualquier nivel

Consulte también

miniportTcpOffloadReceive

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver