Freigeben über


NdisAllocateNetBufferListContext-Funktion (ndis/nblapi.h)

Rufen Sie die NdisAllocateNetBufferListContext-Funktion auf, um mehr Kontextbereich in der NET_BUFFER_LIST_CONTEXT-Struktur eines zuzuweisen.

NET_BUFFER_LIST Struktur.

Syntax

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
  [in] NET_BUFFER_LIST *NetBufferList,
  [in] USHORT          ContextSize,
  [in] USHORT          ContextBackFill,
  [in] ULONG           PoolTag
);

Parameter

[in] NetBufferList

Ein Zeiger auf eine zuvor zugeordnete NET_BUFFER_LIST-Struktur.

[in] ContextSize

Die Menge des Kontextbereichs, der in der NET_BUFFER_LIST_CONTEXT-Struktur zugeordnet werden soll. Dieser Betrag muss ein Vielfaches des durch definierten sizeof(void*)Werts sein.

[in] ContextBackFill

Die Menge des Arbeitsspeichers zusätzlich zum Wert von ContextSize, der zugeordnet werden soll, wenn NDIS Arbeitsspeicher zuweisen muss, um die Anforderung zu erfüllen. Dieser Betrag muss ein Vielfaches des durch definierten sizeof(void*)Werts sein.

[in] PoolTag

Ein Kernelpooltag, das NDIS verwendet, um den Arbeitsspeicher für die NET_BUFFER_LIST_CONTEXT-Struktur zuzuweisen, wenn eine Zuordnung erforderlich ist. Das Tag ist eine durch einfache Anführungszeichen getrennte Zeichenfolge mit bis zu vier Zeichen, die normalerweise in umgekehrter Reihenfolge angegeben sind. Das Kernelpooltag hilft NDIS dabei, den Besitzer des Arbeitsspeichers zu identifizieren.

Rückgabewert

NdisAllocateNetBufferListContext gibt eine der folgenden Rückgaben zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext hat den Kontextbereich erfolgreich zugewiesen, indem der Wert des Offset-Elements der NET_BUFFER_LIST_CONTEXT-Struktur reduziert oder neuer Arbeitsspeicher zugewiesen wurde.
NDIS_STATUS_RESOURCES
Fehler bei NdisAllocateNetBufferListContext aufgrund unzureichender Ressourcen.
NDIS_STATUS_FAILURE
NdisAllocateNetBufferListContext ist aus anderen Gründen als unzureichenden Ressourcen fehlgeschlagen.

Hinweise

Wenn genügend nicht verwendeter Kontextspeicher in der NET_BUFFER_LIST_CONTEXT-Struktur verfügbar ist, um die Anforderung zu erfüllen, reduziert NdisAllocateNetBufferListContext einfach den Wert des Offset-Elements in der NET_BUFFER_LIST_CONTEXT-Struktur. Andernfalls belegt NDIS neuen Arbeitsspeicher für den Kontextbereich. Sie können ContextBackFill angeben, um zusätzlichen Arbeitsspeicher zuzuweisen, damit der nächste Aufruf von NdisAllocateNetBufferListContext keinen Arbeitsspeicher zuweisen muss.

Hinweis Der Kontextbereich wird immer an "sizeof(void*)" ausgerichtet. Dies ist eine angemessene Ausrichtung für alle natürlichen Typen, aber sie ist nicht ausreichend für Datentypen mit ungewöhnlichen Ausrichtungsanforderungen, z. B. SLIST_ENTRY.

Rufen Sie die folgenden NdisFreeNetBufferListContext-Funktion , um den Kontextbereich in der NET_BUFFER_LIST_CONTEXT-Struktur freizugeben, die mit NdisAllocateNetBufferListContext zugeordnet wurde.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis/nblapi.h (include ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_NetBuffer_Function(ndis)

Weitere Informationen

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext