NdisAllocateNetBufferPool-Funktion (ndis/nblapi.h)
Rufen Sie die NdisAllocateNetBufferPool--Funktion auf, um einen Pool mit NET_BUFFER Strukturen zuzuweisen.
Syntax
NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferPool(
[in, optional] NDIS_HANDLE NdisHandle,
[in] NET_BUFFER_POOL_PARAMETERS const *Parameters
);
Parameter
[in, optional] NdisHandle
Ein NDIS-Handle, das während der Initialisierung des Aufrufers abgerufen wurde.
[in] Parameters
Ein Zeiger auf eine NET_BUFFER_POOL_PARAMETERS Struktur, die die Parameter für den Pool definiert. Die Struktur wird wie folgt definiert:
typedef struct _NET_BUFFER_POOL_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG PoolTag;
ULONG DataSize;
} NET_BUFFER_POOL_PARAMETERS, *PNET_BUFFER_POOL_PARAMETERS;
Diese Struktur enthält die folgenden Elemente:
Kopfball
Die NDIS_OBJECT_HEADER Struktur für die NET_BUFFER_POOL_PARAMETERS Struktur. Legen Sie das Type Element der Struktur fest, das Header- angibt, NDIS_OBJECT_TYPE_DEFAULT, das element Revision auf NET_BUFFER_POOL_PARAMETERS_REVISION_1 und das Size Member auf NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.
PoolTag
Ein Kernelpooltag, das der Aufrufer verwendet, wenn er NET_BUFFER Strukturen aus diesem Pool zuordnet. Das Tag ist eine Zeichenfolge, die durch einfache Anführungszeichen mit bis zu vier Zeichen getrennt ist, in der Regel in umgekehrter Reihenfolge angegeben. Das Kernelpooltag hilft NDIS, den Besitzer der NET_BUFFER Strukturen zu identifizieren, die aus diesem Pool zugeordnet sind.
DataSize
Die Standarddatengröße für Datenpuffer, die diesem Pool zugeordnet sind. Der Aufrufer muss diesen Wert festlegen, wenn er die NdisAllocateNetBufferMdlAndData Funktion. NDIS verwendet diesen Wert, um die Größe des Datenpuffers festzulegen, den er für die NET_BUFFER Struktur zuweist. Wenn der Aufrufer dieses Feature nicht verwendet, sollte dieser Wert auf Null festgelegt werden.
Rückgabewert
NdisAllocateNetBufferPool gibt einen Handle an den NET_BUFFER Strukturpool zurück, den NDIS zuweist. Wenn die Zuordnung nicht erfolgreich war, ist dieser Handle NULL-. Dieses Handle ist ein erforderlicher Parameter in nachfolgenden Aufrufen von NDIS-Funktionen, die NET_BUFFER Strukturen aus diesem Pool zuordnen und freigeben.
Bemerkungen
Rufen Sie die folgenden Funktionen auf, um NET_BUFFER Strukturen aus dem NET_BUFFER Strukturpool zuzuweisen.
NdisAllocateNetBufferMdlAndDataMDL- und Datenpuffer, die NdisAllocateNetBufferMdlAndData- zugeordnet sind, sollten nicht getrennt von der NET_BUFFER-Struktur freigegeben werden. Solche Strukturen werden mit der NET_BUFFER Struktur freigegeben, wenn Sie die NdisFreeNetBuffer--Funktion aufrufen.
Rufen Sie die NdisFreeNetBufferPool Funktion auf, um NET_BUFFER Strukturpools frei zu geben, die mit NdisAllocateNetBufferPoolerstellt werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Zielplattform- | Universal |
Header- | ndis/nblapi.h (include ndis.h) |
Library | Ndis.lib |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |