NdisDirectOidRequest, fonction (ndis.h)
La fonction NdisDirectOidRequest transfère une requête OID directe aux pilotes sous-jacents pour interroger les fonctionnalités ou l’état 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 que la fonction NdisOpenAdapterEx retourne 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 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_XXXNdisDirectOidRequest retourne, mais il s’agit généralement de l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
L’opération de demande s’est terminée avec succès. |
|
La requête est gérée de façon asynchrone et NDIS appellera l’appelant. ProtocolDirectOidRequestComplete fonction une fois la requête terminée. |
|
Le codexxx OID_ qui a été spécifié dans le membre Oid de la mémoire tampon NDIS_OID_REQUEST-structured à OidRequest n’était pas valide ou non pris en charge par le pilote sous-jacent. |
|
La valeur spécifiée dans le InformationBufferLength membre de la mémoire tampon structurée NDIS_OID_REQUEST à OidRequest ne correspond pas aux exigences du codexxx OID_ donné. Si la mémoire tampon d’informations était trop petite, le membre BytesNeededed contient la valeur correcte pour InformationBufferLength à retour de NdisDirectOidRequest. |
|
Les données fournies à InformationBuffer dans la structure de NDIS_OID_REQUEST donnée n’étaient pas valides pour le codexxx OID_ donné. |
|
Le pilote sous-jacent ne prend pas en charge l’opération demandée. Pour NdisDirectOidRequest, NDIS peut également renvoyer cet état si le pilote appelant n’a pas inscrit un ProtocolDirectOidRequestComplete fonction. |
|
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. |
|
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. |
|
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 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. |
|
Cette valeur est généralement une valeur par défaut non spécifique, retournée lorsqu’aucune des valeurs NDIS_STATUS_xxx plus spécifiques a provoqué l’échec du pilote sous-jacent à la requête. |
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_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_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 au niveau du runtime IRQL déclenché 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 une requête spécifique à l’OID propre avant d’effectuer la demande que le pilote de niveau supérieur a envoyée à l’origine.
Un pilote qui appelle NdisDirectOidRequest doit inscrire le ProtocolDirectOidRequestComplete fonction.
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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.1 et versions ultérieures. |
plateforme cible | Bureau |
d’en-tête | ndis.h (include Ndis.h) |
bibliothèque | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |