Compartir a través de


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

NDIS llama a la función FilterReturnNetBufferLists para devolver una lista vinculada de estructuras de NET_BUFFER_LIST y datos asociados a un controlador de filtro.

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

Sintaxis

FILTER_RETURN_NET_BUFFER_LISTS FilterReturnNetBufferLists;

void FilterReturnNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Parámetros

[in] FilterModuleContext

Identificador del área de contexto del módulo de filtro. El controlador de filtro creó e inicializó este área de contexto en la función FilterAttach.

[in] NetBufferLists

Lista vinculada de estructuras de NET_BUFFER_LIST que indica el controlador de filtro mediante una llamada a función NdisFIndicateReceiveNetBufferLists. La lista puede incluir estructuras de NET_BUFFER_LIST de varias llamadas a NdisFIndicateReceiveNetBufferLists.

[in] ReturnFlags

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 las marcas siguientes:

NDIS_RETURN_FLAGS_DISPATCH_LEVEL

Especifica que el IRQL actual es DISPATCH_LEVEL. Para obtener más información sobre esta marca, vea Dispatch IRQL Tracking.

NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE

Si se establece esta marca, todos los paquetes de una lista vinculada de NET_BUFFER_LIST estructuras originadas en el mismo puerto de origen de conmutador extensible Hyper-V.

Para obtener más información, vea Hyper-V extensible Switch Send and Receive Flags.

Nota Si cada paquete de la lista vinculada de estructuras de NET_BUFFER_LIST usa el mismo puerto de origen, la extensión debe establecer la marca de NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE en el parámetro ReceiveFlags de FilterReceiveNetBufferLists cuando envía la solicitud.
 

Valor devuelto

Ninguno

Observaciones

FilterReturnNetBufferLists es una función opcional. Si un controlador de filtro no filtra las indicaciones de recepción, puede establecer el punto de entrada de esta función en NULL cuando llama a . función NdisFRegisterFilterDriver.

El controlador de filtro puede llamar a la función NdisSetOptionalHandlers, desde la función FilterSetModuleOptions, para especificar una función de FilterReturnNetBufferLists para un módulo de filtro.

Nota Un controlador de filtro que no proporciona un función FilterReturnNetBufferLists no puede llamar a la función función NdisFIndicateReceiveNetBufferLists para iniciar una indicación de recepción.
 
Nota Un controlador de filtro que proporciona una función FilterReturnNetBufferLists debe proporcionar una función FilterStatus.
 
Cuando NDIS llama a FilterReturnNetBufferLists, el controlador de filtro recupera la propiedad de las estructuras de NET_BUFFER_LIST y los datos asociados.

Si un controlador subyacente inició la indicación de recepción, el controlador de filtro debe llamar al función NdisFReturnNetBufferLists para completar la indicación de recepción.

Si el controlador de filtro originó la indicación de recepción, FilterReturnNetBufferLists puede liberar las estructuras de NET_BUFFER_LIST y los datos asociados o prepararlos para su reutilización en una llamada posterior a NdisFIndicateReceiveNetBufferLists.

Un controlador de filtro debe realizar un seguimiento de las indicaciones de recepción que inicia y asegúrese de que no llama a NdisFReturnNetBufferLists cuando NDIS llama a FilterReturnNetBufferLists.

NDIS llama a FilterReturnNetBufferLists en IRQL <= DISPATCH_LEVEL.

Ejemplos de

Para definir un función FilterReturnNetBufferLists, primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. 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 FilterReturnNetBufferLists función denominada "MyReturnNetBufferLists", use el tipo FILTER_RETURN_NET_BUFFER_LISTS tal como se muestra en este ejemplo de código:

FILTER_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

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

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

El tipo de función FILTER_RETURN_NET_BUFFER_LISTS 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 FILTER_RETURN_NET_BUFFER_LISTS 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

FilterAttach

filterSetModuleOptions de

FilterStatus

NET_BUFFER

NET_BUFFER_LIST

NdisFIndicateReceiveNetBufferLists

NdisFRegisterFilterDriver

NdisFReturnNetBufferLists

NdisSetOptionalHandlers