NdisDirectOidRequest, fonction (ndis.h)
La fonction NdisDirectOidRequest transfère une requête OID directe aux pilotes sous-jacents pour interroger les fonctionnalités ou les status d’un adaptateur ou définir l’état d’une carte.
Syntaxe
NDIS_STATUS NdisDirectOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Paramètres
[in] NdisBindingHandle
Handle retourné par la fonction NdisOpenAdapterEx qui identifie l’adaptateur miniport cible sur la liaison.
[in] OidRequest
Pointeur vers une structure NDIS_OID_REQUEST qui spécifie l’opération demandée avec un code OID_Xxx donné pour interroger le status d’un adaptateur ou définir l’état d’un adaptateur.
Valeur retournée
Le pilote sous-jacent détermine le code NDIS_STATUS_XXXNdisDirectOidRequest retourné, mais il s’agit généralement de l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
L’opération de demande s’est terminée avec succès. |
|
La demande est gérée de manière asynchrone, et NDIS appellera l’appelant Fonction ProtocolDirectOidRequestComplete lorsque la demande est terminée. |
|
Le code OID_Xxx spécifié dans le membre Oid de la mémoire tampon NDIS_OID_REQUEST structurée sur OidRequest n’était pas valide ou n’était pas pris en charge par le pilote sous-jacent. |
|
La valeur spécifiée dans le membre InformationBufferLength de la mémoire tampon NDIS_OID_REQUEST-structurée sur OidRequest ne correspondait pas aux exigences du code OID_Xxx donné. Si la mémoire tampon d’informations était trop petite, le membre BytesNeeded contient la valeur correcte pour InformationBufferLength au retour de NdisDirectOidRequest. |
|
Les données fournies dans InformationBuffer dans la structure NDIS_OID_REQUEST donnée n’étaient pas valides pour le code OID_Xxx donné. |
|
Le pilote sous-jacent ne prend pas en charge l’opération demandée. Pour NdisDirectOidRequest, NDIS peut également retourner ce status si le pilote appelant n’a pas inscrit un Fonction ProtocolDirectOidRequestComplete . |
|
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 elle n’indique pas nécessairement que la même demande, envoyée ultérieurement, échouera pour la même raison. |
|
Le pilote sous-jacent a tenté l’opération demandée, généralement définie sur une carte réseau, mais elle 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. |
|
Le pilote sous-jacent a échoué l’opération demandée, car une opération de fermeture est en cours. |
|
Le pilote miniport sous-jacent ne peut pas satisfaire la demande pour le moment, 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, échouera pour la même raison. |
|
Cette valeur est généralement une valeur par défaut non spécifique, retournée quand aucune des valeurs NDIS_STATUS_Xxx plus spécifiques n’a provoqué l’échec de la demande du pilote sous-jacent. |
Remarques
La fonction NdisDirectOidRequest ne peut pas être utilisée pour les requêtes OID générales. Pour les requêtes OID générales, utilisez la fonction NdisOidRequest à la place. NdisDirectOidRequest ne peut être utilisé que pour les OID pris en charge par NDIS pour une utilisation avec l’interface OID directe. Par exemple, les OID suivants peuvent être utilisés :
OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SAUn 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 au niveau du paramètre OidRequest avant d’appeler NdisDirectOidRequest. Les deux mémoires tampons doivent être allouées à partir d’un pool non paginé, car le pilote sous-jacent s’exécute à l’IRQL élevé lors du traitement de la requête.
NdisDirectOidRequest 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, le pilote intermédiaire peut appeler NdisDirectOidRequest avec sa propre requête spécifique à OID avant de terminer la demande que le pilote de niveau supérieur a initialement envoyée.
Un pilote qui appelle NdisDirectOidRequest doit inscrire le Fonction ProtocolDirectOidRequestComplete .
L’interface de requête OID directe est similaire à l’interface de requête OID générale. Pour plus d’informations sur l’émission de demandes générales, consultez NdisOidRequest.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.1 et versions ultérieures. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA protocole OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA DirectOidRequestCompleteCommentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour