Share via


Aggiunta ed eliminazione di offload del protocollo a basso consumo

Per aggiungere un offload del protocollo a basso consumo, i driver del protocollo NDIS emettono una richiesta di set OID di OID_PM_ADD_PROTOCOL_OFFLOAD. Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_PM_PROTOCOL_OFFLOAD .

Nota Se un pacchetto in ingresso corrisponde sia a un protocollo offloaded che a un modello (ad esempio, a causa di un errore di configurazione), la scheda di rete deve rispondere al pacchetto e riattivare il computer.

La struttura NDIS_PM_PROTOCOL_OFFLOAD include le informazioni seguenti:

Membro Descrizione

Priorità

Contiene la priorità dell'offload del protocollo. Se un driver overlying aggiunge un offload di protocollo con priorità più alta quando non sono disponibili risorse per altri offload di protocollo, NDIS potrebbe rimuovere un offload del protocollo con priorità inferiore per liberare risorse. I driver Miniport devono ignorare questo membro. I driver di protocollo possono fornire qualsiasi valore all'interno dell'intervallo predefinito da NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST a NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST.

ProtocolOffloadType

Contiene un valore NDIS_PM_PROTOCOL_OFFLOAD_TYPE che specifica il tipo di offload del protocollo.

FriendlyName

Contiene una struttura NDIS_PM_COUNTED_STRING che contiene la descrizione leggibile dell'offload del protocollo a basso consumo.

ProtocolOffloadId

Contiene un valore fornito da NDIS che identifica il protocollo offloaded. Prima che NDIS invii la richiesta OID di OID_PM_ADD_PROTOCOL_OFFLOAD fino ai driver NDIS sottostanti o completi la richiesta al driver overlying, NDIS imposta ProtocolOffloadId su un valore univoco tra gli offload del protocollo in una scheda di rete.

NextProtocolOffloadOffset

Contiene l'offset, l'inizio della richiesta OID InformationBuffer, alla struttura NDIS_PM_PROTOCOL_OFFLOAD successiva in un elenco per l'OID OID_PM_PROTOCOL_OFFLOAD_LIST . Per altre informazioni su OID_PM_PROTOCOL_OFFLOAD_LIST, vedere Recupero delle impostazioni dei parametri correnti di offload del protocollo a basso consumo.

ProtocolOffloadParameters

Contiene una delle strutture IPv4ARPParameters, IPv6NSParameters o Dot11RSNRekeyParameters in un'unione.

Termine Descrizione

IPv4ARPParameters

Contiene parametri ARP IPv4.

IPv6NSParameters

Contiene parametri IPv6 Neighbor Solicitation (NS).

Dot11RSNRekeyParameters

Contiene parametri di handshake di rete sicura affidabile IEEE 802.11 (RSN)

 

NDIS assegna un identificatore univoco per una scheda di rete a ogni protocollo offloaded. L'identificatore di offload del protocollo è un valore univoco per ognuno dei protocolli offloaded in una scheda di rete. Tuttavia, l'identificatore di offload del protocollo non è univoco a livello globale in tutte le schede di rete. NDIS passa questo identificatore al driver miniport sottostante quando NDIS invia la richiesta OID OID_PM_ADD_PROTOCOL_OFFLOAD al driver miniport. Se l'offload del protocollo ha esito positivo, NDIS restituisce l'identificatore al driver overlying che ha scaricato il protocollo. Il driver overlying usa l'identificatore per rimuovere un protocollo precedentemente offloaded. L'identificatore di offload del protocollo viene usato anche nelle indicazioni di stato per i driver di livello superiore quando un protocollo offloaded viene rimosso da una scheda di rete.

I driver di protocollo devono rimuovere tutti i protocolli offloaded da una scheda di rete prima di chiudere l'associazione a tale scheda di rete. Per rimuovere un offload del protocollo a basso consumo, un driver di protocollo invia una richiesta di set OID di OID_PM_REMOVE_PROTOCOL_OFFLOAD. Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a un identificatore di offload del protocollo.

NDIS consente a più driver di protocollo NDIS di aggiungere offload di protocollo alla stessa scheda di rete. Per garantire che il set corretto di protocolli sia stato scaricato in una scheda di rete quando il numero di protocolli offloaded richiesti è superiore a quello che una scheda di rete può supportare, i driver di protocollo assegnano una priorità a ogni protocollo offloaded. Quando NDIS non è in grado di eseguire l'offload di un nuovo protocollo ad alta priorità perché la scheda di rete non è disponibile, NDIS elimina uno dei protocolli offloaded con priorità inferiore (se presente) e tenta di eseguire nuovamente l'offload del protocollo con priorità elevata.

Nota Un driver miniport deve interrompere un offload del protocollo a basso consumo e restituire il codice di stato STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL per consentire a NDIS di assegnare nuovamente la priorità agli offload del protocollo.

Se in seguito all'offload di un protocollo ad alta priorità, uno dei protocolli offloaded con priorità più bassa viene eliminato, NDIS invia un'indicazione di stato NDIS_STATUS_PM_OFFLOAD_REJECTED per notificare al driver overlying che imposta l'offload del protocollo eliminato. Il membro StatusBuffer della struttura NDIS_STATUS_INDICATION contiene un identificatore di offload del protocollo rifiutato. NDIS ha fornito l'identificatore di offload del protocollo nel membro ProtocolOffloadId della struttura NDIS_PM_PROTOCOL_OFFLOAD .