Generación de solicitudes de OID a partir de un controlador de protocolo NDIS
Para originar una solicitud de OID a los controladores subyacentes, un protocolo llama a la función NdisOidRequest .
En la ilustración siguiente se muestra una solicitud de OID originada por un controlador de protocolo.
Después de que un controlador de protocolo llame a la función NdisOidRequest , 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 obtener más información sobre cómo un controlador de filtro controla las solicitudes de OID, consulte Filtrar solicitudes de OID del módulo.
Para completar de forma sincrónica, NdisOidRequest devuelve NDIS_STATUS_SUCCESS o un estado de error. Para completar de forma asincrónica, NdisOidRequest devuelve NDIS_STATUS_PENDING.
Si NdisOidRequest devuelve NDIS_STATUS_PENDING, NDIS llama a la función ProtocolOidRequestComplete 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 ProtocolOidRequestComplete. NDIS pasa el estado final de la solicitud en el parámetro Status de ProtocolOidRequestComplete.
Si NdisOidRequest 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 ProtocolOidRequestComplete .
Para determinar qué información se controló correctamente por un controlador subyacente, los controladores de protocolo que emiten solicitudes de OID deben comprobar el valor del miembro SupportedRevision en 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 el controlador subyacente debe asociar la solicitud de OID con una indicación de estado posterior, el controlador de protocolo debe establecer el miembro RequestId en la estructura NDIS_OID_REQUEST. Cuando el controlador subyacente realiza una indicación de estado, establece el miembro RequestId en la estructura NDIS_STATUS_INDICATION en el valor proporcionado en la solicitud OID.
Un controlador puede llamar a NdisOidRequest cuando un enlace está en estado De reinicio, En ejecución, Pausa o Pausado .