OID_PM_ADD_PROTOCOL_OFFLOAD
Som en uppsättning använder NDIS-protokolldrivrutiner OID_PM_ADD_PROTOCOL_OFFLOAD OID för att lägga till en protokoll avlastning för energisparfunktioner till ett nätverkskort. InformationBuffer medlem i NDIS_OID_REQUEST struktur innehåller en pekare till en NDIS_PM_PROTOCOL_OFFLOAD struktur.
NDIS 6.20 och senare protokolldrivrutiner använder OID_PM_ADD_PROTOCOL_OFFLOAD OID för att lägga till en protokoll avlastning för energisparfunktioner till ett nätverkskort. Om begäran lyckas måste nätverkskortet generera och överföra de nödvändiga svarspaketen för det avlastade protokollet när nätverkskortet har låg ström.
En protokolldrivrutin kan avlasta ett protokoll när det har binder till ett underliggande nätverkskort och så snart det har nödvändiga data (till exempel IP-adressen för gränssnittet) för att avlasta protokollet. Protokolldrivrutinen kan också avlasta ett protokoll som svar på andra meddelanden om energisparhändelser, till exempel avvisande av ett tidigare tillagt WOL-mönster eller ett avlastat protokoll.
För att undvika konkurrensförhållanden i NDIS och andra protokolldrivrutiner som är bundna till samma miniportkort, efter att NDIS börjar ställa in ett nätverkskort till ett lågeffektstillstånd, misslyckas alla försök att avlasta ett annat protokoll till nätverkskortet. Om en NDIS-protokolldrivrutin till exempel försöker avlasta ett protokoll i samband med bearbetningen av ett NetEventSetPower händelsemeddelande för nätverkskortet misslyckas NDIS begäran.
Innan NDIS skickar den här OID-begäran till underliggande NDIS-drivrutiner eller slutför begäran till den överliggande drivrutinen, anger den ULONG ProtocolOffloadId medlem i NDIS_PM_PROTOCOL_OFFLOAD struktur till ett unikt värde. Protokolldrivrutiner och NDIS använder det här protokollets avlastningsidentifierare med OID_PM_REMOVE_PROTOCOL_OFFLOAD OID-begäran för att ta bort protokollets avlastning från det underliggande nätverkskortet.
Obs Protokollets avlastningsidentifierare är ett unikt värde för varje protokoll avlastning som anges på ett nätverkskort. Protokollets avlastningsidentifierare är dock inte globalt unik för alla nätverkskort.
Om NDIS eller ett underliggande nätverkskort avvisar en avlastning genereras en NDIS_STATUS_PM_OFFLOAD_REJECTED statusindikering. Detta kan inträffa när NDIS_STATUS_SUCCESS returneras för OID. StatusBuffer medlem i NDIS_STATUS_INDICATION-strukturen innehåller ULONG-protokollets avlastningsidentifierare för avlastning av avvisade protokoll.
Information om hur en intern 802.11 trådlös LAN-miniportdrivrutin använder den här OID:en finns i Lägga till och ta bort lågeffektprotokollavlastningar.
Miniportdrivrutinen returnerar någon av följande statuskoder för begäran:
NDIS_STATUS_SUCCESS
Den begärda protokollbelastningen har lagts till.
ProtocolOffloadId medlem i NDIS_PM_PROTOCOL_OFFLOAD-strukturen innehåller en protokollavlastningsidentifierare.
NDIS_STATUS_PENDING
Begäran väntar på att slutföras. NDIS skickar den slutliga statuskoden och resultaten till OID-begärans slutförandehanterare för anroparen när begäran har slutförts.
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
Begäran misslyckades eftersom protokollets avlastningslista är full och nätverkskortet inte kan lägga till ytterligare en protokollinläsning.
NDIS_STATUS_RESOURCES
NDIS eller ett underliggande nätverkskort kunde inte lägga till den nya protokolllasten på grund av brist på resurser.
NDIS_STATUS_INVALID_PARAMETER
En eller flera parametrar i NDIS_PM_PROTOCOL_OFFLOAD-strukturen var ogiltiga.
NDIS_STATUS_BUFFER_TOO_SHORT
Informationsbufferten var för kort. NDIS anger DATA. SET_INFORMATION. BytesNeeded medlem i NDIS_OID_REQUEST struktur till den minsta buffertstorlek som krävs.
NDIS_STATUS_NOT_SUPPORTED
Nätverkskortet stöder inte den begärda protokollbelastningen.
NDIS_STATUS_FAILURE
Begäran misslyckades av andra orsaker än de föregående orsakerna.
Version |
Stöds i NDIS 6.20 och senare. Obligatoriskt för miniportdrivrutiner. |
Rubrik |
Ntddndis.h (inkludera Ndis.h) |
NDIS_STATUS_PM_OFFLOAD_REJECTED