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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de