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 Aufruferinitialisierung 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 Member:
Header
Die NDIS_OBJECT_HEADER-Struktur für die NET_BUFFER_POOL_PARAMETERS-Struktur. Legen Sie den Typmember der Struktur, den Header angibt, auf NDIS_OBJECT_TYPE_DEFAULT, das Revisionselement auf NET_BUFFER_POOL_PARAMETERS_REVISION_1 und das Size-Element auf NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1 fest.
PoolTag
Ein Kernelpooltag, das der Aufrufer verwendet, wenn er NET_BUFFER Strukturen aus diesem Pool zuordnet. Das Tag ist eine durch einzelne Anführungszeichen getrennte Zeichenfolge mit bis zu vier Zeichen, die normalerweise in umgekehrter Reihenfolge angegeben sind. Das Kernelpooltag hilft NDIS dabei, den Besitzer der NET_BUFFER Strukturen zu identifizieren, die aus diesem Pool zugewiesen werden.
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 es für die NET_BUFFER-Struktur ordnet. Wenn der Aufrufer dieses Feature nicht verwendet, sollte dieser Wert auf 0 festgelegt werden.
Rückgabewert
NdisAllocateNetBufferPool gibt ein Handle an den NET_BUFFER Strukturpool zurück, den NDIS zuordnet. Wenn die Zuordnung nicht erfolgreich war, ist dieses Handle NULL. Dieses Handle ist ein erforderlicher Parameter bei nachfolgenden Aufrufen von NDIS-Funktionen, die NET_BUFFER Strukturen aus diesem Pool zuordnen und freigeben.
Hinweise
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 freizugeben, die mit NdisAllocateNetBufferPool erstellt werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Zielplattform | Universell |
Header | ndis/nblapi.h (einschließlich ndis.h) |
Bibliothek | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |