Compartir a través de


Generación de solicitudes de OID a partir de un controlador de filtro NDIS

Un controlador de filtro puede originar consultas OID o establecer solicitudes en controladores subyacentes mediante una llamada a la función NdisFOidRequest .

En la ilustración siguiente se muestra una solicitud de OID originada por un controlador de filtro.

Diagrama que ilustra una solicitud de OID originada por un controlador de filtro NDIS.

Después de que un controlador de filtro llame a la función NdisFOidRequest , NDIS llama a la función de solicitud del siguiente controlador subyacente. Para obtener más información sobre cómo un controlador de minipuerto controla las solicitudes de OID, consulte Solicitudes de OID para un adaptador.

Para completar de forma sincrónica, NdisFOidRequest devuelve NDIS_STATUS_SUCCESS o un estado de error. Para completar de forma asincrónica, NdisFOidRequest devuelve NDIS_STATUS_PENDING.

Para determinar qué información se controló correctamente por un controlador subyacente, los controladores de filtro que emiten solicitudes de OID deben comprobar el valor en el miembro SupportedRevision de la estructura NDIS_OID_REQUEST después de que se devuelva la solicitud OID. Para obtener más información sobre la versión de NDIS, vea Especificar información de versión de NDIS.

Si NdisFOidRequest devuelve NDIS_STATUS_PENDING, NDIS llama a la función FilterOidRequestComplete después de que los controladores subyacentes completen la solicitud OID. En este caso, NDIS pasa los resultados de la solicitud en el parámetro OidRequest de FilterOidRequestComplete. NDIS pasa el estado final de la solicitud en el parámetro Status de FilterOidRequestComplete.

Si NdisFOidRequest devuelve NDIS_STATUS_SUCCESS, devuelve los resultados de una solicitud de consulta en la estructura NDIS_OID_REQUEST en el parámetro OidRequest . En este caso, NDIS no llama a la función FilterOidRequestComplete .

Un controlador puede llamar a NdisFOidRequest cuando se encuentra en el estado Reinicio, En ejecución, Pausa o Pausado .

Nota Un controlador de filtro debe realizar un seguimiento de las solicitudes de OID que origina y asegurarse de que no llama a la función NdisFOidRequestComplete cuando se completan dichas solicitudes.