OID_PM_ADD_PROTOCOL_OFFLOAD
En tant qu’ensemble, les pilotes de protocole NDIS utilisent le OID_PM_ADD_PROTOCOL_OFFLOAD OID pour ajouter un déchargement de protocole pour la gestion de l’alimentation à une carte réseau. Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_PM_PROTOCOL_OFFLOAD .
Notes
Les pilotes de protocole NDIS 6.20 et versions ultérieures utilisent OID_PM_ADD_PROTOCOL_OFFLOAD OID pour ajouter un déchargement de protocole pour la gestion de l’alimentation à une carte réseau. Si la demande réussit, la carte réseau doit générer et transmettre les paquets de réponse nécessaires pour le protocole déchargé lorsque la carte réseau est à faible consommation d’alimentation.
Un pilote de protocole peut décharger un protocole une fois qu’il s’est lié avec succès à une carte réseau sous-jacente et dès qu’il dispose des données nécessaires (telles que l’adresse IP de l’interface) pour décharger le protocole. Le pilote de protocole peut également décharger un protocole en réponse à d’autres notifications d’événements de gestion de l’alimentation, telles que le rejet d’un modèle WOL précédemment ajouté ou d’un protocole déchargé.
Pour éviter les conditions de concurrence dans NDIS et d’autres pilotes de protocole qui sont liés à la même carte miniport, une fois que NDIS commence à définir une carte réseau à un état d’alimentation faible, toute tentative de déchargement d’un autre protocole sur cette carte réseau échoue. Par exemple, si un pilote de protocole NDIS tente de décharger un protocole dans le contexte du traitement d’une notification d’événement NetEventSetPower pour cette carte réseau, NDIS échouera la demande.
Avant que NDIS envoie cette requête OID aux pilotes NDIS sous-jacents ou termine la demande au pilote surchargé, il définit le membre ULONG ProtocolOffloadId de la structure NDIS_PM_PROTOCOL_OFFLOAD sur une valeur unique. Les pilotes de protocole et NDIS utilisent cet identificateur de déchargement de protocole avec la requête OID OID_PM_REMOVE_PROTOCOL_OFFLOAD pour supprimer le déchargement du protocole de la carte réseau sous-jacente.
Note L’identificateur de déchargement de protocole est une valeur unique pour chacun des déchargements de protocole définis sur une carte réseau. Toutefois, l’identificateur de déchargement du protocole n’est pas globalement unique sur toutes les cartes réseau.
Si NDIS ou une carte réseau sous-jacente rejette un déchargement, il génère une indication NDIS_STATUS_PM_OFFLOAD_REJECTED status. Cela peut se produire après le retour de NDIS_STATUS_SUCCESS pour l’OID. Le membre StatusBuffer de la structure NDIS_STATUS_INDICATION contient l’identificateur de déchargement du protocole ULONG du déchargement du protocole rejeté.
Pour plus d’informations sur la façon dont un pilote miniport LAN sans fil natif 802.11 utilise cet OID, consultez Ajout et suppression de décharges de protocole basse consommation.
Le pilote miniport retourne l’un des codes status suivants pour la demande :
NDIS_STATUS_SUCCESS
Le déchargement du protocole demandé a été ajouté avec succès. Le membre ProtocolOffloadId de la structure NDIS_PM_PROTOCOL_OFFLOAD contient un identificateur de déchargement de protocole.
NDIS_STATUS_PENDING
La demande est en attente d’achèvement. NDIS transmet le code status final et les résultats au gestionnaire de saisie semi-automatique de la requête OID de l’appelant une fois la demande terminée.
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
La demande a échoué, car la liste de déchargement de protocole est complète et la carte réseau ne peut pas ajouter un autre déchargement de protocole.
NDIS_STATUS_RESOURCES
NDIS ou une carte réseau sous-jacente n’ont pas pu ajouter le nouveau déchargement de protocole en raison d’un manque de ressources.
NDIS_STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres de la structure NDIS_PM_PROTOCOL_OFFLOAD n’étaient pas valides.
NDIS_STATUS_BUFFER_TOO_SHORT
La mémoire tampon d’informations était trop courte. NDIS définit les DONNÉES. SET_INFORMATION. BytesNeeded member dans la structure NDIS_OID_REQUEST à la taille de mémoire tampon minimale requise.
NDIS_STATUS_NOT_SUPPORTED
La carte réseau ne prend pas en charge le déchargement de protocole demandé.
NDIS_STATUS_FAILURE
La demande a échoué pour d’autres raisons que les raisons précédentes.
Spécifications
Version |
Pris en charge dans NDIS 6.20 et versions ultérieures. Obligatoire pour les pilotes miniport. |
En-tête |
Ntddndis.h (inclure Ndis.h) |
Voir aussi
NDIS_STATUS_PM_OFFLOAD_REJECTED
OID_PM_REMOVE_PROTOCOL_OFFLOAD
Ajout et suppression de déchargements de protocole à faible consommation d’alimentation