Dela via


Initiering av NDIS-statusindikationer från fysiska nätverksadaptrar

I det här avsnittet beskrivs den metod som används av ett utökningsbart tillägg för vidarebefordring av växeln till NDIS-statusindikationer för ett nätverkskort som är anslutet till växeln. Tillägget kan generera en NDIS-statusindikering för följande typer av adaptrar:

  • Ett eller flera underliggande fysiska adaptrar som är bundna till den externa nätverksadaptern på den utökningsbara växeln.

    Det externa nätverkskortet kan till exempel bindas till den virtuella miniportgränsen för en NDIS multiplexer (MUX) mellanliggande drivrutin. MUX-drivrutinen är bunden till en grupp med ett eller flera fysiska nätverk på värden. Den här konfigurationen kallas för ett utökningsbart växelteam.

    I den här konfigurationen exponeras ett utökningsbart switch-tillägg för varje nätverksadapter i teamet. På så sätt kan tillägget hantera konfigurationen och användningen av enskilda nätverkskort i teamet. Ett tillägg för vidarebefordran kan till exempel ge stöd för en LBFO-lösning (lastbalanseringsredundans) över teamet genom att vidarebefordra utgående paket till enskilda adaptrar. Ett vidarebefordringstillägg som hanterar ett utbyggbart växelteam kallas teaming-leverantör. Mer information om teamindelningsleverantörer finns i Teaming Provider Extensions.

  • Ett virtuellt datornätverkskort (VM) som exponeras i en Hyper-V underordnad partition och som är ansluten till en utökningsbar växelport.

Följande bild visar Hyper-V utbyggbar växlingskontrollväg för NDIS-statusindikationer från fysiska nätverkskort och virtuella nätverkskort för NDIS 6.40 (Windows Server 2012 R2) och senare.

diagram som visar Hyper-V utökningsbar växelkontrollsökväg för NDIS-statusindikationer från fysiska nätverks- och VM-nätverkskort för NDIS 6.40 och senare.

Följande figur visar Hyper-V utbyggbar switchkontrollväg för NDIS-statusindikationer från fysiska och virtuella nätverkskort för NDIS 6.30 (Windows Server 2012).

diagram som visar Hyper-V utökningsbar växelkontrollsökväg för NDIS-statusindikationer från fysiska nätverks- och VM-nätverkskort för NDIS 6.30.

Obs I det utökningsbara växelgränssnittet kallas NDIS-filterdrivrutiner för tillägg och drivrutinsstacken kallas utökningsbara växeldrivrutinsstacken.

Ett tillägg för vidarebefordran kan generera inkapslade statusindikationer för maskinvaruavlastning till överliggande drivrutiner i växeldrivrutinsstacken i den utökningsbara switchen. Detta gör också att tillägget kan ändra de aktuella avlastningsmöjligheterna för det underliggande teamet med fysiska adaptrar som är anslutna till det externa nätverkskortet för den utbyggbara switchen. När ett team av adaptrar är bundna till den externa nätverksadaptern, adresseras endast de gemensamma funktionerna i teamet till NDIS eller överliggande protokoll- och filterdrivrutiner. Tillägget kan utöka de annonserade funktionerna genom att generera inkapslade statusindikationer för att visa funktioner som stöds av vissa adaptrar i konfigurationen. Tillägget kan till exempel utfärda en inkapslad NDIS_STATUS_RECEIVE_FILTER_CURRENT_CAPABILITIES för att ändra de för närvarande aktiverade funktionerna för att ta emot filter för hela teamet.

Obs Endast vidarebefordrande tillägg kan härstamma från inkapslade statusindikationer. Mer information om den här typen av tillägg finns i Vidarebefordra tillägg.

Vanligtvis genererar vidarebefordringsutvidgningen inkapslade NDIS-statusindikationer för att ändra de annonserade funktionerna för maskinvaruavlastning hos den underliggande fysiska adaptern. Tillägget kan till exempel generera statusindikationer för följande typer av maskinvaruavlastningar:

  • Internet Protocol Security (IPsec).

  • Virtualiserad datorkö (VMQ).

  • Enkel rot-I/O-virtualisering (SR-IOV).

Vidarebefordringstillägget kan också skapa NDIS-statusindikationer i inkapslad form för att ändra maskinvaruavlastningsresurserna som allokeras för en Hyper-V underordnad partition. Från och med NDIS 6.30 kan tillägget utfärda en inkapslad NDIS_STATUS_SWITCH_PORT_REMOVE_VF-indikation för att ta bort bindningen mellan en nätverksadapter för virtuell maskin och en PCI Express (PCIe) virtuell funktion (VF). VF exponeras och stöds av ett underliggande fysiskt nätverkskort som stöder Single Root I/O-virtualisering (SR-IOV) gränssnitt.

Om vidarebefordringstillägget initierar en inkapslad NDIS-statusindikering för maskinvaruavlastningens resurser för ett underliggande fysiskt kort, måste det ange medlemmarna i NDIS_SWITCH_NIC_STATUS_INDICATION strukturen på följande sätt:

  • Medlemmen DestinationPortId måste vara inställd på NDIS_SWITCH_DEFAULT_PORT_ID.

  • Medlemmen DestinationNicIndex måste ställas in på NDIS_SWITCH_DEFAULT_NIC_INDEX

  • SourcePortId medlem måste anges till identifieraren för den utökningsbara växelport som det externa nätverkskortet är anslutet till.

  • Medlemmen SourceNicIndex måste ställas in på NDIS_SWITCH_DEFAULT_NIC_INDEX. Detta gör att statusindikeringen kan tolkas som att den kommer från hela utökningsbara växelteamet som är bundet till det externa nätverkskortet.

    Obs Vidarebefordringstillägget måste också ställa in medlemmen på NDIS_SWITCH_DEFAULT_NIC_INDEX om endast ett enda fysiskt nätverkskort är bundet till det externa nätverkskortet.

  • StatusIndication medlem måste anges till en pekare till en NDIS_STATUS_INDICATION struktur. Den här strukturen innehåller data för den inkapslade NDIS-statusindikatorn.

Om vidarebefordringstillägget härleder en NDIS-statusindikering för maskinvaruavlastningens resurser för en Hyper-V underordnad partition, måste den ange medlemmarna i NDIS_SWITCH_NIC_STATUS_INDICATION-strukturen på följande sätt:

  • DestinationPortId och DestinationNicIndex medlemmar måste anges till motsvarande värden för port- och nätverkskortindexet för nätverksanslutningen som används av partitionen.

  • Medlemmen SourcePortId måste vara inställd på NDIS_SWITCH_DEFAULT_PORT_ID.

  • Medlemmen SourceNicIndex måste vara inställd på NDIS_SWITCH_DEFAULT_NIC_INDEX.

  • StatusIndication medlem måste sättas som en pekare till en NDIS_STATUS_INDICATION struktur. Den här strukturen innehåller data för den inkapslade NDIS-statusindikatorn.

När tillägget utfärdar den inkapslade NDIS-statusindikatorn måste den följa dessa steg:

  1. Tillägget anropar ReferenceSwitchNic för att öka en referensräknare för käll- eller målnätverksanslutningen. Detta garanterar att det utökningsbara växelgränssnittet inte tar bort nätverkskortanslutningen medan referensräknaren inte är noll.

    När tillägget anropar ReferenceSwitchNicanger det parametrarna på följande sätt:

    • Om vidarebefordringsförlängningen har sitt ursprung i en inkapslad NDIS-statusindikering för en underliggande fysisk adapter, anger den parametern SwitchPortId till det värde som angetts för SourcePortId medlem. Tillägget anger även parametern SwitchNicIndex till det värde som angetts för SourceNicIndex-medlemmen.

    • Om vidarebefordringstillägget kommer från en NDIS-statusindikering för en Hyper-V underordnad partition, anger det parametern SwitchPortId till det värde som angetts för DestinationPortId medlem. Tillägget anger även parametern SwitchNicIndex till det värde som angetts för DestinationNicIndex medlem.

    Obs Om ReferenceSwitchNic inte returnerar NDIS_STATUS_SUCCESS kan inte den inkapslade NDIS-statusindikatorn utfärdas.

  2. Tillägget anropar NdisFIndicateStatus för att vidarebefordra det inkapslade statusmeddelandet.

    Obs Om tillägget vidarebefordrar en filtrerad OID-begäran måste det anropa NdisFIndicateStatus i kontexten för anropet till funktionen FilterStatus.

  3. När NdisFIndicateStatus returneras, anropar tillägget DereferenceSwitchNic för att återställa referensräknaren för anslutningen till käll- eller destinationsnätverksadaptern. Tillägget anger parametrarna SwitchPortId och SwitchNicIndex till samma värden som det använde i anropet till ReferenceSwitchNic.