Partager via


NdisOidRequest, fonction (ndis.h)

La fonction NdisOidRequest transfère une requête aux pilotes sous-jacents pour interroger les fonctionnalités ou l’état d’un adaptateur ou définir l’état d’un adaptateur.

Syntaxe

NDIS_STATUS NdisOidRequest(
  [in] NDIS_HANDLE       NdisBindingHandle,
  [in] PNDIS_OID_REQUEST OidRequest
);

Paramètres

[in] NdisBindingHandle

Handle retourné par la fonction NdisOpenAdapterEx qui identifie l’adaptateur cible sur la liaison.

[in] OidRequest

Pointeur vers une structure NDIS_OID_REQUEST qui spécifie l’opération demandée avec un codeXXX OID_ donné pour interroger l’état d’un adaptateur ou définir l’état d’une carte.

Valeur de retour

Le pilote sous-jacent détermine quel code NDIS_STATUS_XXXNdisOidRequest retourne, mais il s’agit généralement de l’une des valeurs suivantes :

Retourner le code Description
NDIS_STATUS_SUCCESS
L’opération de demande s’est terminée avec succès.
NDIS_STATUS_PENDING
La requête est gérée de façon asynchrone et NDIS appellera l’appelant. ProtocolOidRequestComplete fonction une fois la requête terminée.
NDIS_STATUS_INVALID_OID
Le codeOID_ XXX spécifié dans le membre Oid de la mémoire tampon NDIS_OID_REQUEST-structurée à OidRequest n’est pas valide ou non pris en charge par le pilote sous-jacent.
NDIS_STATUS_INVALID_LENGTH ou NDIS_STATUS_BUFFER_TOO_SHORT
La valeur spécifiée dans l'InformationBufferLength membre de la mémoire tampon NDIS_OID_REQUEST structurée à OidRequest ne correspond pas aux exigences du codeXXX OID_ donné. Si la mémoire tampon d’informations est trop petite, le membre BytesNeededed contient la valeur correcte pour InformationBufferLength à retour de NdisOidRequest.
NDIS_STATUS_INVALID_DATA
Les données fournies à InformationBuffer dans la structure de NDIS_OID_REQUEST donnée ne sont pas valides pour le codeXXX OID_ donné.
NDIS_STATUS_NOT_SUPPORTED ou NDIS_STATUS_NOT_RECOGNIZED
Le pilote sous-jacent ne prend pas en charge l’opération demandée.
NDIS_STATUS_RESOURCES
La demande n’a pas pu être satisfaite en raison d’une pénurie de ressources. En règle générale, cette valeur de retour indique qu’une tentative d’allocation de mémoire a échoué, mais qu’elle n’indique pas nécessairement que la même demande, envoyée ultérieurement, échoue pour la même raison.
NDIS_STATUS_NOT_ACCEPTED
Le pilote sous-jacent a tenté l’opération demandée, généralement un ensemble sur une carte réseau, mais il a échoué. Par exemple, une tentative de définition d’un trop grand nombre d’adresses de multidiffusion peut entraîner le retour de cette valeur.
NDIS_STATUS_CLOSING ou NDIS_STATUS_CLOSING_INDICATING
Le pilote sous-jacent a échoué l’opération demandée, car une opération de fermeture est en cours.
NDIS_STATUS_RESET_IN_PROGRESS
Le pilote miniport sous-jacent ne peut pas satisfaire la requête pour l’instant, car il réinitialise actuellement la carte réseau affectée. La fonction ProtocolStatusEx de l’appelant a été ou sera appelée avec NDIS_STATUS_RESET_START pour indiquer qu’une réinitialisation est en cours. Cette valeur de retour n’indique pas nécessairement que la même demande, envoyée ultérieurement, échoue pour la même raison.
NDIS_STATUS_FAILURE
Cette valeur est généralement une valeur par défaut non spécifique, retournée lorsqu’aucune des NDIS_STATUS_XXX plus spécifiques n’a provoqué l’échec de la requête par le pilote sous-jacent.

Remarques

Un pilote de protocole doit allouer suffisamment de mémoire pour contenir la mémoire tampon d’informations associée à l’OID spécifié. Le pilote doit également allouer et configurer la mémoire tampon à OidRequest avant d’appeler NdisOidRequest. Les deux mémoires tampons doivent être allouées à partir d’un pool non paginé, car le pilote sous-jacent s’exécute au niveau du runtime IRQL déclenché lors du traitement de la requête.

NdisOidRequest transfère une requête aux pilotes sous-jacents ou gère la requête elle-même. Si le pilote inférieur suivant est un pilote intermédiaire NDIS, il peut appeler NdisOidRequest avec une demande spécifique à l’OID propre avant d’effectuer la demande envoyée à l’origine par le pilote de niveau supérieur.

Certaines erreurs retournées sont récupérables, notamment les suivantes :

Autrement dit, un pilote peut modifier le paquet à OidRequest de manière appropriée pour corriger le code OID_XXX ou la taille ou le contenu de la mémoire tampon à InformationBuffer et renvoyer le paquet de requête à NdisOidRequest. Le même paquet peut être satisfait lors de la nouvelle soumission à NdisOidRequest si l’appel d’origine a indiqué une réinitialisation en cours ou qu’une pénurie de ressources, qui peut être temporaire, a empêché cette demande d’être effectuée.

La bibliothèque NDIS gère les liaisons pour les pilotes miniport sous-jacents. NDIS peut retourner des informations pour les requêtes spécifiques à la liaison si un OID donné est associé à un type moyen défini par le système pour lequel le système fournit une bibliothèque de filtres.

Pour plus d’informations sur les OI généraux et spécifiques aux médias et sur leurs mémoires tampons d’informations associées respectives, consultez OID NDIS.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
plateforme cible Bureau
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
règles de conformité DDI Irql_OID_Function(ndis)

Voir aussi

NDIS_OID_REQUEST

NdisOpenAdapterEx

ProtocolOidRequestComplete

ProtocolStatusEx