OID_GEN_CO_NETCARD_LOAD
Notes
OID_GEN_CO_NETCARD_LOAD est identique à OID_GEN_NETCARD_LOAD.
L’OID OID_GEN_CO_NETCARD_LOAD retourne la charge relative sur le système de transmission d’un pilote miniport orienté connexion. Le pilote miniport dérive ce nombre en calculant la différence entre la quantité de données fournies pour la transmission à partir de protocoles et la quantité de données réellement envoyées, comme indiqué par les paquets retournés aux protocoles avec NdisMCoSendComplete. Le résultat est la quantité de données de transmission en attente dans le pilote miniport à tout moment.
Étant donné que cette statistique change à une fréquence très élevée, le port du pilote miniport doit le filtrer. La méthode de filtrage la plus simple consiste à maintenir une moyenne en cours d’exécution des échantillons des données de transmission en suspens. Par exemple, chaque fois que MiniportCoSendPackets est appelé, le pilote miniport peut ajouter la taille du paquet envoyé à une variable définie par le pilote miniport appelée OutstandingBytes. Chaque fois que le pilote miniport appelle NdisMCoSendComplete, le pilote miniport soustrait la taille de paquet retournée d’OutstandingBytes. Le pilote miniport doit également conserver une moyenne en cours d’exécution, qui est la valeur que le pilote miniport doit retourner en réponse à la requête OID_GEN_CO_NETCARD_LOAD. Cette variable, qui peut être appelée RunningAverage, doit être mise à jour sur chaque MiniportCoSendPackets, comme suit :
RunningAverage = [(RunningAverage * C) + (OutstandingBytes * (128 - C))] / 128;
Dans ce cas, 1 <C< 128. Les valeurs supérieures de C produisent un filtrage plus fluide.
Spécifications
Version : Windows Vista et versions ultérieures En-tête : Ntddndis.h (inclure Ndis.h)