Partager via


Ajout et suppression de déchargements de protocole basse consommation

Pour ajouter un déchargement de protocole à faible consommation d’alimentation, les pilotes de protocole NDIS émettent une demande de jeu d’OID de OID_PM_ADD_PROTOCOL_OFFLOAD. Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_PM_PROTOCOL_OFFLOAD .

Note Si un paquet entrant correspond à la fois à un protocole déchargé et à un modèle (par exemple, en raison d’une erreur de configuration), la carte réseau doit répondre au paquet et réveiller l’ordinateur.

La structure NDIS_PM_PROTOCOL_OFFLOAD comprend les informations suivantes :

Membre Description

Priorité

Contient la priorité du déchargement du protocole. Si un pilote overlying ajoute un déchargement de protocole de priorité plus élevée lorsqu’il n’y a pas de ressources disponibles pour d’autres déchargements de protocole, NDIS peut supprimer un déchargement de protocole de priorité inférieure pour libérer des ressources. Les pilotes miniport doivent ignorer ce membre. Les pilotes de protocole peuvent fournir n’importe quelle valeur dans la plage prédéfinie de NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST à NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST.

ProtocolOffloadType

Contient une valeur NDIS_PM_PROTOCOL_OFFLOAD_TYPE qui spécifie le type de déchargement de protocole.

Friendlyname

Contient une structure NDIS_PM_COUNTED_STRING qui contient la description lisible par l’utilisateur du déchargement du protocole à faible consommation d’alimentation.

ProtocolOffloadId

Contient une valeur fournie par NDIS qui identifie le protocole déchargé. Avant que NDIS n’envoie la demande OID de OID_PM_ADD_PROTOCOL_OFFLOAD aux pilotes NDIS sous-jacents ou termine la demande au pilote de dépassement, NDIS définit ProtocolOffloadId sur une valeur unique parmi les déchargements de protocole sur une carte réseau.

NextProtocolOffloadOffset

Contient le décalage, le début de la requête OID InformationBuffer, vers la structure NDIS_PM_PROTOCOL_OFFLOAD suivante dans une liste pour l’OID OID_PM_PROTOCOL_OFFLOAD_LIST . Pour plus d’informations sur OID_PM_PROTOCOL_OFFLOAD_LIST, consultez Obtention des paramètres actuels des déchargements du protocole Low Power.

ProtocolOffloadParameters

Contient l’une des structures IPv4ARPParameters, IPv6NSParameters ou Dot11RSNRekeyParameters dans une union.

Terme Description

IPv4ARPParameters

Contient des paramètres ARP IPv4.

IPv6NSParameters

Contient des paramètres de sollicitation de voisin (NS) IPv6.

Dot11RSNRekeyParameters

Contient les paramètres d’établissement d’une liaison de réseau sécurisé (RSN) IEEE 802.11

 

NDIS affecte un identificateur unique pour une carte réseau à chaque protocole déchargé. L’identificateur de déchargement de protocole est une valeur unique pour chacun des protocoles qui sont déchargés sur une carte réseau. Toutefois, l’identificateur de déchargement du protocole n’est pas globalement unique sur toutes les cartes réseau. NDIS transmet cet identificateur au pilote miniport sous-jacent lorsque NDIS envoie la requête OID OID_PM_ADD_PROTOCOL_OFFLOAD au pilote miniport. Si le déchargement du protocole réussit, NDIS retourne l’identificateur au pilote de surélément qui a déchargé le protocole. Le pilote overlying utilise l’identificateur pour supprimer un protocole précédemment déchargé. L’identificateur de déchargement de protocole est également utilisé dans status indications aux pilotes de couche supérieure lorsqu’un protocole déchargé est supprimé d’une carte réseau.

Les pilotes de protocole doivent supprimer tous les protocoles déchargés d’une carte réseau avant de fermer la liaison à cette carte réseau. Pour supprimer un déchargement de protocole à faible consommation d’alimentation, un pilote de protocole envoie une demande de jeu d’OID de OID_PM_REMOVE_PROTOCOL_OFFLOAD. Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers un identificateur de déchargement de protocole.

NDIS permet à plusieurs pilotes de protocole NDIS d’ajouter des déchargements de protocole à la même carte réseau. Pour s’assurer que le bon ensemble de protocoles a été déchargé sur une carte réseau lorsque le nombre de protocoles déchargés demandés est supérieur à ce qu’une carte réseau peut prendre en charge, les pilotes de protocole attribuent une priorité à chaque protocole déchargé. Lorsque NDIS ne peut pas décharger un nouveau protocole de priorité élevée parce que la carte réseau n’a plus de ressources, NDIS supprime l’un des protocoles déchargés de priorité inférieure (le cas échéant) et tente à nouveau de décharger le protocole de priorité élevée.

Note Un pilote miniport doit échouer à une demande d’ajout de protocole de déchargement de faible alimentation et retourner le code STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL status pour permettre à NDIS de re hiérarchiser les déchargements de protocole.

Si, à la suite du déchargement d’un protocole de priorité élevée, l’un des protocoles déchargés de priorité inférieure est supprimé, NDIS envoie une NDIS_STATUS_PM_OFFLOAD_REJECTED status indication pour notifier le pilote qui a défini le déchargement du protocole supprimé. Le membre StatusBuffer de la structure NDIS_STATUS_INDICATION contient un identificateur de déchargement de protocole du déchargement de protocole rejeté. NDIS a fourni l’identificateur de déchargement de protocole dans le membre ProtocolOffloadId de la structure NDIS_PM_PROTOCOL_OFFLOAD .