Freigeben über


NdisAllocateBuffer-Funktion (ndis.h)

Hinweis NDIS 5. x wurde veraltet und wird von NDIS 6 abgelöst. x. Informationen zur Entwicklung neuer NDIS-Treiber finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x-Treiber auf NDIS 6. x, siehe Portieren von NDIS 5.x-Treibern zu NDIS 6.0.

NdisAllocateBuffer erstellt einen Pufferdeskriptor, der einen angegebenen virtuellen (Unter-)Bereich innerhalb eines bereits zugewiesenen, nicht ausseitigen Speicherblocks zuzuordnen ist.

Syntax

void NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

Parameter

[out] Status

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion den endgültigen status der Pufferzuordnung zurückgibt. Dies ist NDIS_STATUS_SUCCESS, wenn sie einen gültigen Pufferdeskriptorzeiger auf Buffer und andernfalls NDIS_STATUS_FAILURE zurückgegeben hat.

[out] Buffer

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion einen Zeiger auf den zugeordneten Pufferdeskriptor zurückgibt.

[in, optional] PoolHandle

Gibt das Handle an, das von einem vorherigen Aufruf von NdisAllocateBufferPool zurückgegeben wird.

[in] VirtualAddress

Zeiger auf die virtuelle Basisadresse des zuvor zugeordneten Systemspeichers, der im zurückgegebenen Pufferdeskriptor zugeordnet werden soll.

[in] Length

Gibt die Anzahl der zuzuordnenden Bytes an.

Rückgabewert

Keine

Bemerkungen

Rückgabewert: keiner

NdisAllocateBuffer reserviert Speicher für und initialisiert einen Pufferdeskriptor, um einen angegebenen Bereich des zuvor zugewiesenen Arbeitsspeichers zuzuordnen, z. B. Arbeitsspeicher, der für einen Paketheader oder einen NIC-Empfangspuffer verwendet wird.

Die Pufferdeskriptorzuordnung basiert auf dem Pufferpool, den NdisAllocateBufferPool erstellt. Ein Treiber kann NdisAllocateBuffer so oft wie nötig aufrufen, um die Pufferdeskriptoren zuzuordnen, die er benötigt, wenn er während der Initialisierung NdisAllocateBufferPool aufgerufen hat .

Alle niedrigeren NDIS-Treiber müssen alle Pufferdeskriptoren zuordnen, die sie mit Paketen aus dem Pufferpool verketten. Nur Protokolltreiber der obersten Ebene können betriebssystemabhängige Deskriptoren zugewiesen werden, die virtuelle Speicherbereiche zuordnen. Wenn diese Speicherdeskriptoren NDIS-Pufferdeskriptoren entsprechen, kann ein Protokoll der obersten Ebene solche Deskriptoren als Parameter an NdisXxx-Funktionen übergeben.

Anforderungen

Anforderung Wert
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Weitere Informationen