Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Netwerkgegevens worden in WFP aangegeven als NDIS-netbufferlijsten (NET_BUFFER_LIST). De Next lid van de NET_BUFFER_LIST-structuur kan worden gebruikt om een keten van nettobufferlijsten te beschrijven. WFP geeft slechts één netbufferlijst door aan oproepen (dat wil zeggen netBufferList->Next == NULL), met uitzondering van de volgende gevallen:
WFP kan net bufferlijstketens aangeven voor oproepen uit de Stream-laag.
WFP geeft netbufferlijstketens aan aan bijschriften wanneer IP-pakketfragmentgroepen in het doorstuurpad worden classificeerd naar bijschriften. Elke netbufferlijst in de keten beschrijft één fragment.
Hoewel een netbufferlijst een heel pakket kan beschrijven, geeft WFP voor verschillende lagen netbufferlijsten door aan callouts bij verschillende offsets vanaf het begin van de IP-header. Op de binnenkomende netwerklaag begint de netbufferlijst bijvoorbeeld na de IP-header, terwijl bij de binnenkomende transportlaag de netbufferlijst na de transportheader begint. IP- en transportheaders worden altijd beschreven door de eerste NET_BUFFER structuur in een netbufferlijst.
Verschuivingen in de netbufferlijsten worden aangegeven aan callouts met behulp van de ipHeaderSize en transportHeaderSize leden van de FWPS_INCOMING_METADATA_VALUES0 structuur. Aanroepen kunnen gebruikmaken van de NDIS-functies NdisRetreatNetBufferDataStart en NdisAdvanceNetBufferDataStart om de offset van de aangegeven netbufferlijsten aan te passen. In dit geval moet de callout echter de verschuivingsaanpassing ongedaan maken voordat hij terugkeert van de classificeerfn functie.
In een aanroep van de classificeerTFn--functie voor uitgaande gegevens, kan een NET_BUFFER_LIST meer dan één NET_BUFFER structuur bevatten, die elk een IP-pakket beschrijft. Als sommige pakketten (bijvoorbeeld net buffers) in een net bufferlijst acceptabel zijn, maar andere niet, moet een callout-driver het volgende doen:
Kloon en blokkeer de hele netbufferlijst.
Bouw een nieuwe netbufferlijst die de acceptabele subset van netbuffers beschrijft.
Injecteer de nieuwe netbufferlijst weer in het verzendpad.
U kunt de callout ook de ongewenste netbuffers loskoppelen uit de netbufferlijst en de gewijzigde netbufferlijst weer in het verzendpad injecteren. In dit geval moet het bijschriftstuurprogramma deze wijziging echter ongedaan maken in de gekloonde netbufferlijst voordat de functie FwpsFreeCloneNetBufferList0 wordt aangeroepen. Het callout-driver moet ook de oorspronkelijke netbufferkoppelingsinformatie opslaan als onderdeel van de toestandsgegevens.
Zie Gegevensverschilpositiesvoor meer informatie over gegevensverschuivingen die worden gebruikt door WFP.
Opmerking Bijschriften die met ontsleutelde IPSec ESP-pakketten werken, moeten de gegevenslengte van de NET_BUFFER structuur gebruiken in plaats van MDL-gegevens om de pakketlengte te bepalen. Gebruik de NET_BUFFER_DATA_LENGTH macro om de gegevenslengte te verkrijgen. Voor meer informatie, zie IPsec-Compatible Ontwikkelen van Stuurprogramma's voor bijschriften.