Compartir a través de


Solicitudes de OID del controlador de protocolo CoNDIS

Los controladores de protocolo CoNDIS, ya sean clientes o administradores de llamadas, pueden consultar o establecer los parámetros operativos de los controladores de miniport y otros controladores de protocolo. Los controladores de protocolo CoNDIS también pueden consultar o establecer información en administradores de llamadas de miniport (MCM). Para obtener más información sobre las solicitudes OID y MCM, consulte Solicitudes OID de CoNDIS MCM.

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 miniport, 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 OID dirigida a un controlador de miniport.

Diagrama que ilustra una solicitud de OID dirigida a un controlador de miniport.

En la ilustración siguiente se muestra una solicitud OID dirigida a un controlador de protocolo.

Diagrama que ilustra una solicitud de OID dirigida a un controlador de protocolo.

Para completar de forma sincrónica, 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 realiza 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, Ejecución, Pausa o Pausado .