Partager via


NdisRequest, fonction (ndis.h)

Remarque NDIS 5. x a été déconseillé et est remplacé par NDIS 6. x. Pour le développement de nouveaux pilotes NDIS, consultez Pilotes réseau à partir de Windows Vista. Pour plus d’informations sur le portage de NDIS 5. pilotes x vers NDIS 6. x, consultez Portage des pilotes NDIS 5.x vers NDIS 6.0.

NdisRequest transfère une demande au pilote sous-jacent qu’il interroge les fonctionnalités ou l’état de sa carte réseau ou qu’il définit l’état de sa carte réseau.

Syntaxe

void NdisRequest(
  [out] PNDIS_STATUS  Status,
  [in]  NDIS_HANDLE   NdisBindingHandle,
  [in]  PNDIS_REQUEST NdisRequest
);

Paramètres

[out] Status

Pointeur vers une variable fournie par l’appelant qui est définie lors du retour de cette fonction. Le pilote sous-jacent détermine les NDIS_STATUS_XXX retournés, mais il s’agit généralement de l’une des valeurs suivantes :

  • NDIS_STATUS_SUCCESS
    L’opération demandée s’est terminée avec succès.

  • NDIS_STATUS_PENDING
    La requête est gérée de manière asynchrone et la fonction ProtocolRequestComplete de l’appelant est appelée une fois terminée.

  • NDIS_STATUS_INVALID_OID
    Le codeOID_ XXX spécifié dans le membre Oid de la mémoire tampon structurée NDIS_REQUEST à NdisRequest 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 le InformationBufferLength membre de la mémoire tampon structurée NDIS_REQUEST à NdisRequest 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 NdisRequest .

  • NDIS_STATUS_INVALID_DATA
    Les données fournies à InformationBuffer dans la structure de NDIS_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, ce retour indique qu’une tentative d’allocation de la 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 sa carte réseau, mais il a échoué par la carte netcard. 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 fermeture est en cours.

  • NDIS_STATUS_RESET_IN_PROGRESS
    Le pilote de carte réseau sous-jacent ne peut pas satisfaire la requête pour l’instant, car il réinitialise actuellement la carte réseau. La fonctionProtocolStatus 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.

[in] NdisBindingHandle

Spécifie le handle retourné par NdisOpenAdapter qui identifie la carte réseau cible ou l’adaptateur virtuel du pilote inférieur suivant auquel l’appelant est lié.

[in] NdisRequest

Pointeur vers une structure mise en mémoire tampon spécifiant l’opération demandée avec un code XXX OID_ donné pour une requête ou un jeu.

Valeur de retour

Aucun

Remarques

Un pilote de protocole doit allouer suffisamment de mémoire pour la mémoire tampon d’informations associée au OID_XXX de l’opération qu’il demande. Le pilote doit également allouer et configurer la mémoire tampon à NdisRequest avant d’appeler NdisRequest. 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.

Pour les appelants superposés au-dessus d’un pilote NDIS intermédiaire, NdisRequest transfère une requête au pilote inférieur suivant qu’il retourne des informations sur ses propres fonctionnalités ou dirige ce pilote pour gérer des fonctionnalités spécifiques de manière déterminée par l’appelant. Si le pilote inférieur suivant est un pilote intermédiaire NDIS, il peut appeler NdisRequest avec une requête spécifique à l’OID propre avant d’effectuer la requête envoyée à l’origine par le protocole de niveau supérieur.

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

NDIS_STATUS_INVALID_OID

NDIS_STATUS_INVALID_LENGTH

NDIS_STATUS_BUFFER_TOO_SHORT

NDIS_STATUS_INVALID_DATA

NDIS_STATUS_RESOURCES

NDIS_STATUS_RESET_IN_PROGRESS

Autrement dit, un pilote peut modifier le paquet à NdisRequest correctement pour corriger le code OID_XXX et/ou la taille ou le contenu de la mémoire tampon à InformationBuffer et renvoyer le paquet de requête à NdisRequest. Le même paquet peut être satisfait lors de la nouvelle soumission à NdisRequest 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 leurs mémoires tampons d’informations associées respectives, consultez identificateurs d’objets NDIS.

  • Plateforme cible : universelle
  • Version : non pris en charge pour les pilotes NDIS 6.0 dans Windows Vista. Utilisez NdisOidRequestà la place. Pris en charge pour les pilotes NDIS 5.1 dans Windows Vista et Windows XP.

Exigences

Exigence Valeur
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Voir aussi