Compartir a través de


función FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE (ndis.h)

NDIS llama a la función FilterSynchronousOidRequestComplete de un controlador de filtro después de que se haya completado una solicitud de OID sincrónica desde un controlador subyacente.

Esta función se admite en NDIS 6.81 y versiones posteriores.

Sintaxis

void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
  [in]      NDIS_HANDLE      FilterModuleContext,
  [in, out] NDIS_OID_REQUEST *OidRequest,
  [in, out] NDIS_STATUS      *Status,
  [in]      PVOID            CallContext
);

Parámetros

[in] FilterModuleContext

Identificador del área de contexto del módulo de filtro que es el destino de esta solicitud. El controlador de filtro creó e inicializó este área de contexto en la función filterAttach .

[in, out] OidRequest

Puntero a una estructura NDIS_OID_REQUEST que especifica la operación que se está completando.

[in, out] Status

Puntero al código de estado resultante de la solicitud que se está completando.

[in] CallContext

Ranura de almacenamiento de tamaño PVOID para que el controlador de filtro comparta el estado entre sus controladores deFilterSynchronousOidRequest y FilterSynchronousOidRequestComplete. Si el controlador de filtro implementa un controlador de FilterSynchronousOidRequest, este parámetro contiene el valor de contexto que devolvió el controlador de FilterSynchronousOidRequest. De lo contrario, si el controlador de filtro no implementa un controlador de FilterSynchronousOidRequest, este valor es cero.

Valor devuelto

Ninguno

Observaciones

filterSynchronousOidRequestComplete es una función opcional. Si un controlador de filtro no necesita observar o modificar las solicitudes OID sincrónicas completadas desde el controlador de miniport, el controlador de filtro debe establecer el punto de entrada de esta función en NULL cuando llama a NdisFRegisterFilterDriver.

NDIS llama a la función del controlador de filtro FilterSynchronousOidRequestComplete para procesar solicitudes de OID sincrónicas completadas por controladores subyacentes. Los controladores de filtro pueden leer o modificar algunos campos de la estructura NDIS_OID_REQUEST de la siguiente manera:

Campo Filtrado del acceso
Encabezado Solo lectura
RequestType Lectura y escritura
PortNumber Lectura y escritura
Interrupción No acceder
RequestId No acceder
RequestHandle Lectura y escritura
DATOS Lectura y escritura
NdisReserved No acceder
MiniportReserved No acceder
SourceReserved No acceder
SupportedRevision Lectura y escritura
Reserved1, Reserved2 No acceder
SwitchId Lectura y escritura
VPortId Lectura y escritura
Banderas Lectura y escritura

Además de modificar la estructura NDIS_OID_REQUEST, los controladores de filtro pueden leer o modificar el código de estado con el que se completó la operación. El controlador de filtro puede escribir un nuevo valor en el parámetro *Status. Los controladores de filtro no deben escribir NDIS_STATUS_PENDING ni NDIS_STATUS_ALREADY_COMPLETE en el parámetro *Status.

Si el controlador de filtro también registra un controlador de FilterSynchronousOidRequest, NDIS garantiza que se llamará al controlador FilterSynchronousOidRequestComplete si y solo si el controlador FilterSynchronousOidRe quest devuelve NDIS_STATUS_SUCCESS.

Se espera que los controladores de filtro vuelvan de su controlador de FilterSynchronousOidRequestComplete rápidamente, sin bloquear, esperar o dormir. Las solicitudes de OID sincrónicas solo se usan para operaciones de baja latencia y los controladores de filtro deben esforzarse por continuar o completarlas dentro de varios milisegundos.

NDIS no serializa las solicitudes de OID sincrónicas entre sí, contra otras solicitudes OID o contra FilterPause. Es responsabilidad del controlador de filtro implementar cualquier sincronización necesaria.

NDIS serializa las solicitudes OID sincrónicas en FilterDetach: NDIS garantiza que no se activen solicitudes OID sincrónicas una vez que se invoque FilterDetach.

Los controladores de filtro no deben llamar a NdisAllocateCloneOidRequest o NdisCancelOidRequest en una solicitud de OID sincrónica. Los controladores de filtro no deben llamar a NdisFSynchronousOidRequest en una solicitud OID que se recibe a través de un controlador de FilterSynchronousOidRequestComplete.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 1709
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL <= DISPATCH_LEVEL

Consulte también

filterSynchronousOidRequest

NdisFSynchronousOidRequest

interfaz de solicitud OID sincrónica en NDIS 6.80