Condividi tramite


OID_PM_ADD_PROTOCOL_OFFLOAD

Come set, i driver del protocollo NDIS usano l'OID OID_PM_ADD_PROTOCOL_OFFLOAD per aggiungere un offload di protocollo per il risparmio energia a una scheda di rete. Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_PM_PROTOCOL_OFFLOAD .

Commenti

I driver di protocollo NDIS 6.20 e versioni successive usano OID_PM_ADD_PROTOCOL_OFFLOAD OID per aggiungere un offload di protocollo per il risparmio energia a una scheda di rete. Se la richiesta ha esito positivo, la scheda di rete deve generare e trasmettere i pacchetti di risposta necessari per il protocollo offloaded quando la scheda di rete è in uno stato di alimentazione insufficiente.

Un driver di protocollo può eseguire l'offload di un protocollo dopo che è stato associato correttamente a una scheda di rete sottostante e non appena contiene i dati necessari (ad esempio l'indirizzo IP dell'interfaccia) per eseguire l'offload del protocollo. Il driver di protocollo può anche eseguire l'offload di un protocollo in risposta ad altre notifiche degli eventi di risparmio energia, ad esempio il rifiuto di un modello WOL aggiunto in precedenza o un protocollo offloaded.

Per evitare race condition in NDIS e altri driver di protocollo associati alla stessa scheda miniport, dopo che NDIS inizia a impostare una scheda di rete su uno stato a basso consumo, non riuscirà a eseguire l'offload di un altro protocollo in tale scheda di rete. Ad esempio, se un driver di protocollo NDIS tenta di eseguire l'offload di un protocollo nel contesto dell'elaborazione di una notifica degli eventi NetEventSetPower per tale scheda di rete, NDIS non riuscirà la richiesta.

Prima che NDIS invii questa richiesta OID ai driver NDIS sottostanti o completi la richiesta al driver overlying, imposta il membro ULONG ProtocolOffloadId della struttura NDIS_PM_PROTOCOL_OFFLOAD su un valore univoco. I driver di protocollo e NDIS usano questo identificatore di offload del protocollo con la richiesta OID OID_PM_REMOVE_PROTOCOL_OFFLOAD per rimuovere l'offload del protocollo dalla scheda di rete sottostante.

Nota L'identificatore di offload del protocollo è un valore univoco per ogni offload del protocollo impostato su una scheda di rete. Tuttavia, l'identificatore di offload del protocollo non è univoco a livello globale in tutte le schede di rete.

Se NDIS o una scheda di rete sottostante rifiuta un offload, genera un'indicazione di stato NDIS_STATUS_PM_OFFLOAD_REJECTED . Questa situazione può verificarsi dopo la restituzione di NDIS_STATUS_SUCCESS per l'OID. Il membro StatusBuffer della struttura NDIS_STATUS_INDICATION contiene l'identificatore di offload del protocollo ULONG rifiutato.

Per informazioni su come un driver miniport LAN wireless nativo 802.11 usa questo OID, vedere Aggiunta ed eliminazione di offload del protocollo a basso consumo.

Il driver miniport restituisce uno dei codici di stato seguenti per la richiesta:

NDIS_STATUS_SUCCESS
L'offload del protocollo richiesto è stato aggiunto correttamente. Il membro ProtocolOffloadId della struttura NDIS_PM_PROTOCOL_OFFLOAD contiene un identificatore di offload del protocollo.

NDIS_STATUS_PENDING
La richiesta è in attesa di completamento. NDIS passerà il codice di stato finale e i risultati al gestore di completamento della richiesta OID del chiamante al termine della richiesta.

NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
La richiesta non è riuscita perché l'elenco di offload del protocollo è pieno e la scheda di rete non può aggiungere un altro offload di protocollo.

NDIS_STATUS_RESOURCES
NDIS o una scheda di rete sottostante non è stato in grado di aggiungere il nuovo offload del protocollo a causa della mancanza di risorse.

NDIS_STATUS_INVALID_PARAMETER
Uno o più parametri nella struttura NDIS_PM_PROTOCOL_OFFLOAD non sono validi.

NDIS_STATUS_BUFFER_TOO_SHORT
Il buffer delle informazioni era troppo breve. NDIS imposta i DATI. SET_INFORMATION. Membro BytesNeeded nella struttura NDIS_OID_REQUEST alle dimensioni minime del buffer necessarie.

NDIS_STATUS_NOT_SUPPORTED
La scheda di rete non supporta l'offload del protocollo richiesto.

NDIS_STATUS_FAILURE
La richiesta non è riuscita per motivi diversi dai motivi precedenti.

Requisiti

Versione

Supportato in NDIS 6.20 e versioni successive. Obbligatorio per i conducenti miniport.

Intestazione

Ntddndis.h (include Ndis.h)

Vedi anche

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

Aggiunta ed eliminazione di offload del protocollo a basso consumo