Partager via


Génération de requêtes OID à partir d’un pilote de protocole NDIS

Pour créer une requête OID aux pilotes sous-jacents, un protocole appelle la fonction NdisOidRequest .

La figure suivante illustre une requête OID qui provient d’un pilote de protocole.

Diagramme illustrant une requête OID provenant d’un pilote de protocole.

Après qu’un pilote de protocole a appelé la fonction NdisOidRequest , NDIS appelle la fonction de requête du pilote sous-jacent suivant. Pour plus d’informations sur la façon dont un pilote miniport gère les requêtes OID, consultez Demandes d’OID pour un adaptateur. Pour plus d’informations sur la façon dont un pilote de filtre gère les requêtes OID, consultez Demandes OID de module de filtre.

Pour effectuer une opération synchrone, NdisOidRequest retourne NDIS_STATUS_SUCCESS ou une erreur status. Pour effectuer une opération asynchrone, NdisOidRequest retourne NDIS_STATUS_PENDING.

Si NdisOidRequest retourne NDIS_STATUS_PENDING, NDIS appelle la fonction ProtocolOidRequestComplete une fois que les pilotes sous-jacents ont terminé la requête OID. Dans ce cas, NDIS transmet les résultats de la requête au paramètre OidRequest de ProtocolOidRequestComplete. NDIS transmet la status finale de la demande au paramètre Status de ProtocolOidRequestComplete.

Si NdisOidRequest retourne NDIS_STATUS_SUCCESS, il retourne les résultats d’une requête dans la structure NDIS_OID_REQUEST au niveau du paramètre OidRequest . Dans ce cas, NDIS n’appelle pas la fonction ProtocolOidRequestComplete .

Pour déterminer quelles informations ont été correctement gérées par un pilote sous-jacent, les pilotes de protocole qui émettent des requêtes OID doivent case activée la valeur dans le membre SupportedRevision de la structure NDIS_OID_REQUEST après le retour de la requête OID. Pour plus d’informations sur les informations de version NDIS, consultez Spécification des informations de version NDIS.

Si le pilote sous-jacent doit associer la requête OID à une indication de status suivante, le pilote de protocole doit définir le membre RequestId dans la structure NDIS_OID_REQUEST. Lorsque le pilote sous-jacent effectue une indication status, il définit le membre RequestId dans la structure NDIS_STATUS_INDICATION sur la valeur fournie dans la requête OID.

Un pilote peut appeler NdisOidRequest lorsqu’une liaison se trouve dans l’état Redémarrage, Exécution, Suspension ou Pause.