Delen via


Rapporteren van mogelijkheden voor het samenvoegen van pakketten

Miniportstuurprogramma's registreren de volgende mogelijkheden bij NDIS tijdens de initialisatie van de netwerkadapter:

  • De mogelijkheden voor pakketcoalescentie die door de netwerkadapter worden ondersteund.

  • De samengestelde pakketmogelijkheden die momenteel zijn ingeschakeld op de netwerkadapter.

  • De pakketcoalescentie-ontvangstfiltermogelijkheden die momenteel zijn ingeschakeld op de netwerkadapter.

Opmerking De ondersteuning van een minipoortstuurprogramma voor pakketcoalescing kan worden ingeschakeld of uitgeschakeld met het *PacketCoalescing INF-trefwoord. Deze instelling wordt weergegeven op de eigenschappenpagina Advanced voor de netwerkadapter. Zie Gestandaardiseerde INF-trefwoorden voor pakketvereniging voor meer informatie over de instelling voor het samenvoegen van pakketten in het INF-bestand.

Het minipoortstuurprogramma rapporteert de mogelijkheden voor het samenvoegen en filteren van pakketten van de onderliggende netwerkadapter via een NDIS_RECEIVE_FILTER_CAPABILITIES structuur. Als de *PacketCoalescing trefwoordinstelling in het register een waarde heeft, wordt pakketsamenkoppeling ingeschakeld en initialiseert het minipoortstuurprogramma de NDIS_RECEIVE_FILTER_CAPABILITIES structuur op de volgende manier:

  1. Het minipoortstuurprogramma initialiseert de Header member. Het stuurprogramma stelt het Type element van Header in op NDIS_OBJECT_TYPE_DEFAULT.

    Als het stuurprogramma ondersteuning biedt voor het samenvoegen van pakketten, wordt het Revision member van Header ingesteld op NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 en het Size member op NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.

  2. Het minipoortstuurprogramma stelt de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE in bij het SupportedQueueProperties-lid.

    Als deze vlag is ingesteld, moet de netwerkadapter ondersteuning bieden voor het filteren van ontvangen multicastpakketten in hardware. Deze filtering is gebaseerd op de multicastadressen die NDIS naar de netwerkadapter heeft offgeladen door deze met OID_802_3_MULTICAST_LIST OID-setaanvragen te verzenden.

    Notitie Protocolstuurprogramma's kunnen ook de inhoud van de multicastadreslijst wijzigen door OID_802_3_ADD_MULTICAST_ADDRESS en OID_802_3_DELETE_MULTICAST_ADDRESS aanvragen te verzenden. NDIS combineert deze aanvragen in OID_802_3_MULTICAST_LIST OID-setaanvragen.

Opmerking De adapter is vereist voor het weigeren van binnenkomende multicastpakketten waarvan het MAC-adres (Destination Media Access Control) niet overeenkomt met een van de multicast-adressen die zijn opgegeven door deze OID-setaanvragen.

  1. Het miniportstuurprogramma stelt de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED in het lid EnabledFilterTypes in.

    nl-NL: Opmerking Als het stuurprogramma deze vlag instelt, moet het stuurprogramma ook de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE instellen in de SupportedQueueProperties eigenschap. Anders zal NDIS de aanroep naar NdisMSetMiniportAttributes laten mislukken door NDIS_STATUS_BAD_CHARACTERISTICS te retourneren.

  2. Als het minipoortstuurprogramma de NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED vlaggen instelt, moet het stuurprogramma aan alle criteria voor het testen van ontvangstfilters voldoen. Het stuurprogramma kondigt deze ondersteuning aan door de volgende instellingen in te stellen in het SupportedFilterTests lidmaatschap:

    • NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

    • NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

    • NDIS_TEST_HEADER_FIELD_NOT_EQUAL_ONDERSTEUND

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het SupportedFilterTests lid op nul instellen.

  3. Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens binnen verschillende velden van het mediatoegangsbeheer (MAC), IP-versie 4 (IPv4) en IP-versie 6 (IPv6). Het stuurprogramma kondigt deze ondersteuning aan door de volgende vlaggen in te stellen in het SupportedHeaders element:

    • NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

    • NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

    • NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED (NDIS ONTVANGS-FILTER IPV4 HEADER ONDERSTEUND)

    • NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

    • NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma de SupportedHeaders lid op nul instellen.

  4. Als het minipoortstuurprogramma de NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED vlag instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens in de MAC-header (Media Access Control) van het ontvangen pakket. Het stuurprogramma adverteert deze ondersteuning door de volgende vlaggen in te stellen in het SupportedMacHeaderFields veld.

    • NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

    • NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

    • NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het SupportedMacHeaderFields lidveld op nul instellen.

  5. Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens in de header van een ontvangen ARP-pakket (Address Resolution Protocol). Het stuurprogramma kondigt deze ondersteuning aan door de volgende vlaggen in te stellen in het SupportedARPHeaderFields veld.

    • NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

    • NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED (Ondersteuning voor ARP-koptekst met SPA-filter)

    • NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het SupportedARPHeaderFields element op nul instellen.

  6. Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens binnen de Open Systems Interconnection (OSI) laag 3 (L3) header van een ontvangen IP-versie 4 (IPv4) pakket. Het stuurprogramma kondigt deze ondersteuning aan door de volgende vlaggen in te stellen in de SupportedIPv4HeaderFields lid:

    • NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het lid SupportedIPv4HeaderFields op nul instellen.

  7. Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens in de L3-header van een ontvangen IP-versie 6-pakket (IPv6). De driver adverteert deze ondersteuning door de volgende vlaggen in te stellen in het SupportedIPv6HeaderFields lidmaatschap.

    • NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

    Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het SupportedIPv6HeaderFields lidveld instellen op nul.

  8. Als het minipoortstuurprogramma de NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED vlag instelt, moet het minipoortstuurprogramma ondersteuning bieden voor het filteren van gegevens in de OSI-laag 4-header (L4) van een ontvangen UDP-pakket (User Datagram Protocol). Het stuurprogramma kondigt deze ondersteuning aan door de volgende vlaggen in te stellen in het SupportedIUdpHeaderFields lid:

    • NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

    Opmerking Als het ontvangen UDP-pakket IPv4-opties of IPv6-extensieheaders bevat, kan de netwerkadapter het pakket verwerken alsof de UDP-filtertest is mislukt. Op deze manier kan de adapter het ontvangen pakket automatisch verwijderen.

Opmerking Als het minipoortstuurprogramma de vlag NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED niet instelt, moet het stuurprogramma het SupportedIUdpHeaderFields lid op nul instellen.

  1. Het minipoortstuurprogramma moet het maximum aantal tests op velden voor pakketheaders rapporteren die kunnen worden opgegeven voor één pakketvereenlingsfilter. Het stuurprogramma specificeert deze waarde in het MaxFieldTestsPerPacketCoalescingFilter-element.

    Opmerking Netwerkadapters die ondersteuning bieden voor pakketcombinatie moeten vijf of meer pakketheader-velden ondersteunen die kunnen worden gespecificeerd voor één pakketcombinatiefilter. Als de adapter geen ondersteuning biedt voor het samenvoegen van pakketten, moet het minipoortstuurprogramma deze waarde instellen op nul.

  2. Het minipoortstuurprogramma moet het maximale aantal packet coalescing-filters melden dat wordt ondersteund door de netwerkadapter. Het stuurprogramma specificeert deze waarde in het onderdeel MaxPacketCoalescingFilters.

    Let op Netwerkadapters die ondersteuning bieden voor pakketsamenkoppeling, moeten tien of meer filters voor pakketsamenvouwen ondersteunen. Als de adapter geen ondersteuning biedt voor het samenvoegen van pakketten, moet het minipoortstuurprogramma deze waarde instellen op nul.

Wanneer NDIS de miniportInitializeEx functie aanroept, rapporteert het stuurprogramma de mogelijkheden voor pakketsamenvoeging en -filtering van de onderliggende netwerkadapter door de volgende stappen uit te voeren:

  • Het minipoort-stuurprogramma initieert een NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES structuur.

    Als de *PacketCoalescing trefwoordinstelling in het register een waarde van één heeft, stelt het miniport-stuurprogramma de HardwareReceiveFilterCapabilities lidvariabele in op een aanwijzer naar de eerder geïnitialiseerde NDIS_RECEIVE_FILTER_CAPABILITIES structuur.

    Als de *PacketCoalescing trefwoordinstelling in het register een waarde van nul heeft, biedt het minipoortstuurprogramma geen ondersteuning voor pakketsamenkoppeling. Het moet het HardwareReceiveFilterCapabilities-lid instellen op NULL.

  • Het stuurprogramma roept NdisMSetMiniportAttributes aan en stelt de parameter MiniportAttributes in op een aanwijzer naar de NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-structuur.

De methode die door miniportstuurprogramma's wordt gebruikt voor het rapporteren van de mogelijkheden voor het samenvoegen en filteren van pakketten van de onderliggende netwerkadapter, is gebaseerd op de NDIS 6.20-methode voor het rapporteren van energiebeheermogelijkheden. Zie Reporting Power Management Capabilitiesvoor meer informatie over deze methode.

Zie Initialiseren van een minipoortadaptervoor meer informatie over het initialisatieproces van de adapter.