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

NDIS llama a la función FilterOidRequestComplete para completar una solicitud de controlador de filtro que consulta o establece información en un controlador subyacente.

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

Sintaxis

FILTER_OID_REQUEST_COMPLETE FilterOidRequestComplete;

void FilterOidRequestComplete(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_OID_REQUEST OidRequest,
  [in] NDIS_STATUS Status
)
{...}

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] OidRequest

Puntero a la estructura NDIS_OID_REQUEST que el controlador de filtro pasó anteriormente a la función NdisFOidRequest .

[in] Status

Estado final de la solicitud establecida por un controlador subyacente o por NDIS. Este parámetro determina qué hace FilterOidRequestComplete con la información de OidRequest . Para obtener una lista de los valores de estado posibles, consulte los valores devueltos de NdisFOidRequest.

Valor devuelto

None

Observaciones

FilterOidRequestComplete es una función opcional. Si un controlador de filtro no usa solicitudes OID, puede establecer el punto de entrada de esta función en NULL cuando llama a la función NdisFRegisterFilterDriver . Si un controlador de filtro define una función FilterOidRequest , debe proporcionar la función FilterOidRequestComplete .

Si la función NdisFOidRequest devuelve NDIS_STATUS_PENDING, NDIS debe llamar a la función FilterOidRequestComplete para completar la solicitud OID.

Si un controlador de filtro reenvía una solicitud que recibió en la función FilterOidRequest , FilterOidRequestComplete debe pasar el estado de finalización a la pila del controlador mediante una llamada a la función NdisFOidRequestComplete . El controlador de filtro debe llamar a NdisFreeCloneOidRequest para liberar la estructura NDIS_OID_REQUEST, antes de llamar a NdisFOidRequestComplete.

Un controlador de filtro debe realizar un seguimiento de las solicitudes que origina y asegurarse de que no llama a NdisFOidRequestComplete cuando NDIS llama a FilterOidRequestComplete para estas solicitudes.

NDIS llama a FilterOidRequestComplete en IRQL <= DISPATCH_LEVEL.

Ejemplos

Para definir una función FilterOidRequestComplete , 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 Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función FilterOidRequestComplete denominada "MyOidRequestComplete", use el tipo FILTER_OID_REQUEST_COMPLETE como se muestra en este ejemplo de código:

FILTER_OID_REQUEST_COMPLETE MyOidRequestComplete;

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

_Use_decl_annotations_
NDIS_STATUS
 MyOidRequestComplete(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_OID_REQUEST  OidRequest,
    NDIS_STATUS  Status
    )
  {...}

El tipo de función FILTER_OID_REQUEST_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 FILTER_OID_REQUEST_COMPLETE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte 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, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

FilterAttach

FilterOidRequest

NDIS_OID_REQUEST

NdisFOidRequest

NdisFOidRequestComplete

NdisFreeCloneOidRequest