Freigeben über


NdisAllocateBufferPool-Funktion (ndis.h)

Hinweis NDIS 5. x ist veraltet und wird von NDIS 6 ersetzt. x. Informationen zur neuen NDIS-Treiberentwicklung finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x Treiber auf NDIS 6. xfinden Sie unter Portieren von NDIS 5.x-Treibern zu NDIS 6.0.

Diese Funktion gibt ein Handle zurück, mit dem der Aufrufer Pufferdeskriptoren zuordnen kann, indem die funktion NdisAllocateBuffer aufgerufen wird.

Syntax

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Parameter

[out] Status

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion den endgültigen Status der Pufferpoolzuordnung zurückgibt.

[out] PoolHandle

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion ein Handle an den Pufferpool zurückgibt. Dieses Handle ist ein erforderlicher Parameter für die NDIS-Pufferfunktionen, die der Treiber anschließend aufruft.

[in] NumberOfDescriptors

Gibt die Anzahl der Pufferdeskriptoren an, die der Aufrufer vom Pufferpool zuordnen soll, ohne zugeordnete Pufferdeskriptoren zurück in den Pool freizugeben.

Rückgabewert

Nichts

Bemerkungen

Gibt immer NDIS_STATUS_SUCCESS zurück.

Nachdem diese Funktion zurückgegeben wurde, ruft der Treiber die NdisAllocateBuffer- Funktion ein oder mehrere Male auf, um die benötigten Pufferdeskriptoren zuzuweisen. Ein Treiber sollte diese Funktion während der Initialisierung aufrufen.

Die NumberOfDescriptors Parameter, der von einem NIC-Treiber angegeben wird, hängt in der Regel von den Features der NIC ab. Beispielsweise würde der Treiber einer Busmaster-DMA-NIC mit Ringpuffern mindestens eine ausreichend große NumberOfDescriptors angeben, um den vollständigen Ring zuzuordnen.

Die NumberOfDescriptors im Aufruf dieser Funktion angegeben ist der effektive Grenzwert für die Häufigkeit, mit der der Treiber NdisAllocateBuffer- aufrufen kann, bevor er die NdisFreeBuffer--Funktion aufrufen muss, um einen Pufferdeskriptor an die kostenlose Liste für den Pufferpool zurückzugeben.

Wenn ein Treiber den zugeordneten Pufferpool nicht mehr benötigt, ruft er die NdisFreeBufferPool--Funktion auf, um den Pufferpoolhandle freizugeben.

Der Treiber muss jede Drehsperre freigeben, die sie hält, bevor sie diese Funktion aufruft.

Alle NDIS-Treiber auf niedrigerer Ebene müssen alle Pufferdeskriptoren zuordnen, die sie zu Paketen aus einem Pufferpool verketten. Nur Protokolltreiber auf höchster Ebene können betriebssystemabhängige Deskriptoren zugeordnet werden, die virtuelle Speicherbereiche zuordnen. Wenn diese Speicherdeskriptoren äquivalent zu NDIS-Pufferdeskriptoren sind, kann ein Protokoll auf höchster Ebene solche Deskriptoren als Parameter an NDIS-Funktionen übergeben.

Betriebssystemversionen: Windows CE .NET 4.0 und höher.

Anforderungen

Anforderung Wert
Header- ndis.h
IRQL- IRQL-<= DISPATCH_LEVEL

Siehe auch