Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Filtertreiber erstellen Puffer zum Kopieren von Netzwerkdaten, die von anderen Treibern abgerufen wurden, oder zum Initiieren von Sende- oder Empfangsvorgängen.
Wenn ein Filtertreiber keine Puffer erstellt, verwaltet der Treiber keine Pufferpools. Ein solcher Treiber übergibt einfach die Puffer, die er von anderen Treibern empfängt.
Ein Filtertreiber, der Puffer zur Unterstützung von Sende- oder Empfangsvorgängen erstellt, muss NET_BUFFER_LIST Strukturpools und NET_BUFFER Strukturpools verwalten.
Um diese Pools zu erstellen, rufen Treiber die folgenden Funktionen auf:
Filtertreiber können die folgenden Funktionen verwenden, um Strukturen aus den Pools zuzuweisen:
NdisAllocateNetBufferAndNetBufferList
Der Aufruf NdisAllocateNetBufferAndNetBufferList ist effizienter als der Aufruf NdisAllocateNetBufferList, gefolgt von NdisAllocateNetBuffer. NdisAllocateNetBufferAndNetBufferList erstellt auf der NET_BUFFER_LIST-Struktur jedoch nur eine NET_BUFFER-Struktur. Um NdisAllocateNetBufferAndNetBufferListzu verwenden, muss der Treiber den Parameter AllocateNetBuffer auf TRUE festlegen, wenn er NdisAllocateNetBufferListPoolaufruft.
Filtertreiber, die Sendeanforderungen initiieren, sollten den Kontext und die Anforderungen an den Speicherplatz der zugrunde liegenden Treiber ermitteln. Filtertreiber verwenden Neustartattribute, um die Nachfüllanforderungen der zugrunde liegenden Treiber zu ermitteln. Ein Filtertreiber sollte die Anforderungen zum Abgleich und zum Kontext im Status Neustarten ermitteln. Der Treiber sollte genügend Abgleich- und Kontextbereich für den gesamten Stapel zuweisen. Bei Bedarf kann ein Filtertreiber Pools freigeben und diese im Status Neustarten neu zuweisen.
Filtertreiber verwenden die folgenden Funktionen, um die Pools freizueren:
Filtertreiber verwenden die folgenden Funktionen, um die von den Pools zugewiesenen Strukturen freizugeben:
Treiber sollten NET_BUFFER-Strukturen freigeben, die mit NdisAllocateNetBuffer zugewiesen wurden, bevor sie die zugeordnete NET_BUFFER_LIST-Struktur freigegeben. NET_BUFFER-Strukturen, die mit NdisAllocateNetBufferAndNetBufferList allokiert werden, werden freigegeben, wenn der Treiber NdisFreeNetBufferList für die zugehörige NET_BUFFER_LIST-Struktur aufruft.