Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |