Demandes d'OID du pilote de protocole CoNDIS

Les pilotes de protocole CoNDIS, clients ou gestionnaires d’appels, peuvent interroger ou définir les paramètres d’exploitation des pilotes miniports et d’autres pilotes de protocole. Les pilotes de protocole CoNDIS peuvent également interroger ou définir des informations dans les gestionnaires d’appels miniport (MCMs). Pour plus d’informations sur les demandes OID et les MCM, consultez Demandes OID CoNDIS MCM.

Pour initier une requête OID vers un pilote sous-jacent, un pilote de protocole appelle la fonction NdisCoOidRequest et définit le handle de la famille d’adresses (AF), dans le paramètre NdisAfHandle, à NULL. Pour initier une requête OID à un autre pilote de protocole CoNDIS, un pilote de protocole appelle NdisCoOidRequest et fournit un handle AF valide.

Après qu’un pilote de protocole appelle la fonction NdisCoOidRequest , NDIS appelle la fonction de requête OID de l’autre pilote (un pilote sous-jacent ou un autre pilote de protocole CoNDIS). Pour les pilotes miniport, NDIS appelle la fonction MiniportCoOidRequest . Pour les pilotes de protocole, NDIS appelle la fonction ProtocolCoOidRequest .

La figure suivante illustre une requête OID dirigée vers un pilote de miniport.

Diagramme illustrant une requête OID dirigée vers un pilote miniport.

La figure suivante illustre une requête OID dirigée vers un pilote de protocole.

Diagramme illustrant une requête OID dirigée vers un pilote de protocole.

Pour effectuer la synchronisation, NdisCoOidRequest retourne NDIS_STATUS_SUCCESS ou un état d’erreur. Pour effectuer une opération asynchrone, NdisCoOidRequest retourne NDIS_STATUS_PENDING.

Si NdisCoOidRequest retourne NDIS_STATUS_PENDING, NDIS appelle la fonction ProtocolCoOidRequestComplete une fois que l’autre pilote a terminé la requête OID en appelant la fonction NdisMCoOidRequestComplete ou la fonction NdisCoOidRequestComplete . Dans ce cas, NDIS transmet les résultats de la requête au paramètre OidRequest de ProtocolCoOidRequestComplete. NDIS transmet l’état final de la requête au paramètre Status de ProtocolCoOidRequestComplete.

Si NdisCoOidRequest retourne NDIS_STATUS_SUCCESS, il renvoie les résultats d’une requête de requête dans la structure NDIS_OID_REQUEST aux points de paramètre OidRequest . Dans ce cas, NDIS n’appelle pas la fonction ProtocolCoOidRequestComplete .

Si un pilote sous-jacent doit associer la requête OID à une indication d’état ultérieure, le pilote de protocole doit définir les membres RequestId et RequestHandle dans la structure NDIS_OID_REQUEST. Si le pilote sous-jacent effectue une indication d'état, le pilote attribue au membre RequestId de la structure NDIS_STATUS_INDICATION la valeur du membre RequestId de la structure NDIS_OID_REQUEST et au membre DestinationHandle de la structure NDIS_STATUS_INDICATION la valeur du membre RequestHandle de la structure NDIS_OID_REQUEST.

Un pilote peut appeler NdisCoOidRequest lorsqu’une liaison se trouve dans l’état En redémarrage, En cours, En suspension, ou En pause.