FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE función (ndis.h)

NDIS llama a la función FilterSynchronousOidRequestComplete del 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 FilterSynchronousOidRequest y FilterSynchronousOidRequestComplete . Si el controlador de filtro implementa un controlador FilterSynchronousOidRequest , este parámetro contiene el valor de contexto que devolvió el controlador FilterSynchronousOidRequest . De lo contrario, si el controlador de filtro no implementa un controlador FilterSynchronousOidRequest , este valor es cero.

Valor devuelto

None

Observaciones

FilterSynchronousOidRequestComplete es una función opcional. Si un controlador de filtro no necesita observar o modificar las solicitudes de OID sincrónicas completadas desde el controlador de minipuerto, 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 FilterSynchronousOidRequestComplete del controlador de filtro para procesar solicitudes de OID sincrónicas completadas por los 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/escritura
PortNumber Lectura/escritura
Tiempo de espera No acceder
RequestId No acceder
RequestHandle Lectura/escritura
DATA Lectura/escritura
NdisReserved No acceder
MiniportReserved No acceder
SourceReserved No acceder
SupportedRevision Lectura/escritura
Reserved1, Reserved2 No acceder
SwitchId Lectura/escritura
VPortId Lectura/escritura
Marcas Lectura/escritura

Además de modificar la estructura de 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 FilterSynchronousOidRequest , NDIS garantiza que se llamará al controlador FilterSynchronousOidRequestComplete si y solo si el controlador FilterSynchronousOidRequest devuelve NDIS_STATUS_SUCCESS.

Se espera que los controladores de filtro vuelvan de su controlador FilterSynchronousOidRequestComplete rápidamente, sin bloquear, esperar ni dormir. Las solicitudes de OID sincrónicas solo se usan para las 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 de OID o con FilterPause. Es responsabilidad del controlador de filtro implementar cualquier sincronización necesaria.

NDIS serializa las solicitudes de OID sincrónicas en FilterDetach: NDIS garantiza que ninguna solicitud OID sincrónica estará activa 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 de OID que se recibe a través de un controlador FilterSynchronousOidRequestComplete .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1709
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

Interfaz de solicitud de OID sincrónica en NDIS 6.80