Compartir a través de


PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE función de devolución de llamada (ndis.h)

La función protocolSendNetBufferListsComplete completa una operación de envío que el controlador de protocolo inició con una llamada a . función NdisSendNetBufferLists.

Nota Debe declarar la función mediante el tipo PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE ProtocolSendNetBufferListsComplete;

void ProtocolSendNetBufferListsComplete(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNET_BUFFER_LIST NetBufferList,
  [in] ULONG SendCompleteFlags
)
{...}

Parámetros

[in] ProtocolBindingContext

Identificador de un área de contexto que el controlador de protocolo asignó para mantener información de estado sobre un enlace. Este identificador se pasó a NDIS en una llamada anterior a NdisOpenAdapterEx.

[in] NetBufferList

Puntero a una lista de estructuras de NET_BUFFER_LIST que el controlador de protocolo proporcionó en una llamada anterior a NdisSendNetBufferLists.

[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

Ninguno

Observaciones

ProtocolSendNetBufferListsComplete es una función necesaria para los controladores de protocolo. ProtocolSendNetBufferListsComplete realiza cualquier postprocesamiento necesario para completar una operación de envío. Por ejemplo, el controlador de protocolo puede notificar a los clientes que solicitaron el protocolo para enviar los datos de red que la operación de envío está completa.

NDIS llama a protocolSendNetBufferListsComplete después de que el controlador de miniport subyacente llame al función NdisMSendNetBufferListsComplete. La finalización de una operación de envío normalmente implica que el controlador de miniport subyacente ha transmitido los datos de red especificados. Sin embargo, un controlador de minipuerto puede indicar que una operación de envío se ha completado tan pronto como transfiere los datos de red a su NIC.

Cuando NDIS llama a ProtocolSendNetBufferListsComplete, el controlador de protocolo recupera la propiedad de todos los recursos asociados a las estructuras de NET_BUFFER_LIST especificadas por el parámetro NetBufferLists.

NDIS siempre envía los datos de red proporcionados por el protocolo al controlador de miniport subyacente en el orden determinado por el protocolo que se pasa a NdisSendNetBufferLists. Sin embargo, el controlador subyacente puede completar las solicitudes de envío en cualquier orden. Es decir, los controladores de protocolo pueden confiar en NDIS para enviar datos de red en FIFO para el controlador subyacente. Sin embargo, los controladores de protocolo no pueden confiar en el controlador subyacente para llamar a NdisMSendNetBufferListsComplete en el mismo orden.

NDIS llama a protocolSendNetBufferListsComplete en IRQL<= DISPATCH_LEVEL.

Ejemplos de

Para definir una función ProtocolSendNetBufferListsComplete, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir un ProtocolSendNetBufferListsComplete función denominada "MySendNetBufferListsComplete", use el tipo PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE tal como se muestra en este ejemplo de código:

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE MySendNetBufferListsComplete;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
VOID
 MySendNetBufferListsComplete(
    NDIS_HANDLE  ProtocolBindingContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  SendCompleteFlags
    )
  {...}

El tipo de función PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL <= DISPATCH_LEVEL

Consulte también

NET_BUFFER

NET_BUFFER_LIST

NdisMSendNetBufferListsComplete

NdisOpenAdapterEx

NdisSendNetBufferLists