Solicitudes de OID del controlador del protocolo CoNDIS
Los controladores de protocolo CoNDIS, ya sea clientes o administradores de llamadas, pueden consultar o establecer los parámetros operativos de los controladores de miniporte y otros controladores de protocolo. Los controladores de protocolo CoNDIS también pueden consultar o establecer información en los administradores de llamadas de miniporte (MCM). Para obtener más información sobre las solicitudes de OID y los MCM, consulte Solicitudes OID de MCM de CoNDIS.
Para originar una solicitud de OID a un controlador subyacente, un controlador de protocolo llama a la función NdisCoOidRequest y establece el identificador de la familia de direcciones (AF), en el parámetro NdisAfHandle , en NULL. Para originar una solicitud de OID a otro controlador de protocolo CoNDIS, un controlador de protocolo llama a NdisCoOidRequest y proporciona un identificador af válido.
Después de que un controlador de protocolo llame a la función NdisCoOidRequest , NDIS llama a la función de solicitud OID del otro controlador (un controlador subyacente u otro controlador de protocolo CoNDIS). Para los controladores de minipuerto, NDIS llama a la función MiniportCoOidRequest . En el caso de los controladores de protocolo, NDIS llama a la función ProtocolCoOidRequest .
En la ilustración siguiente se muestra una solicitud de OID que se dirige a un controlador de minipuerto.
En la ilustración siguiente se muestra una solicitud de OID que se dirige a un controlador de protocolo.
Para completarse sincrónicamente, NdisCoOidRequest devuelve NDIS_STATUS_SUCCESS o un estado de error. Para completar de forma asincrónica, NdisCoOidRequest devuelve NDIS_STATUS_PENDING.
Si NdisCoOidRequest devuelve NDIS_STATUS_PENDING, NDIS llama a la función ProtocolCoOidRequestComplete después de que el otro controlador complete la solicitud OID llamando a la función NdisMCoOidRequestComplete o a la función NdisCoOidRequestComplete . En este caso, NDIS pasa los resultados de la solicitud en el parámetro OidRequest de ProtocolCoOidRequestComplete. NDIS pasa el estado final de la solicitud en el parámetro Status de ProtocolCoOidRequestComplete.
Si NdisCoOidRequest devuelve NDIS_STATUS_SUCCESS, devuelve los resultados de una solicitud de consulta en la estructura NDIS_OID_REQUEST en los puntos del parámetro OidRequest . En este caso, NDIS no llama a la función ProtocolCoOidRequestComplete .
Si un controlador subyacente debe asociar la solicitud OID con una indicación de estado posterior, el controlador de protocolo debe establecer los miembros RequestId y RequestHandle en la estructura NDIS_OID_REQUEST. Si el controlador subyacente hace una indicación de estado, el controlador establece el miembro RequestId en la estructura NDIS_STATUS_INDICATION en el valor del miembro RequestId de la estructura NDIS_OID_REQUEST y el miembro DestinationHandle de la estructura NDIS_STATUS_INDICATION en el valor del miembro RequestHandle de la estructura NDIS_OID_REQUEST.
Un controlador puede llamar a NdisCoOidRequest cuando un enlace está en estado De reinicio, En ejecución, Pausa o Pausado .