NdisAllocateNetBufferListContext 関数 (ndis/nblapi.h)
NdisAllocateNetBufferListContext 関数を呼び出して、 のNET_BUFFER_LIST_CONTEXT構造体にさらに多くのコンテキスト領域を割り当てます。
NET_BUFFER_LIST 構造体。
構文
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
[in] NET_BUFFER_LIST *NetBufferList,
[in] USHORT ContextSize,
[in] USHORT ContextBackFill,
[in] ULONG PoolTag
);
パラメーター
[in] NetBufferList
以前に割り当てられたNET_BUFFER_LIST構造体へのポインター。
[in] ContextSize
NET_BUFFER_LIST_CONTEXT構造体に割り当てるコンテキスト領域の量。 この量は、 で sizeof(void*)
定義された値の倍数である必要があります。
[in] ContextBackFill
要求を満たすために NDIS がメモリを割り当てる必要がある場合に割り当てる 、ContextSize の値に加えて、メモリの量。 この量は、 で sizeof(void*)
定義された値の倍数である必要があります。
[in] PoolTag
割り当てが必要な場合、NDIS がNET_BUFFER_LIST_CONTEXT構造体のメモリを割り当てるために使用するカーネル プール タグ。 タグは、一重引用符で区切られた文字列で、通常は逆の順序で指定される最大 4 文字です。 カーネル プール タグは、NDIS がメモリの所有者を識別するのに役立ちます。
戻り値
NdisAllocateNetBufferListContext は 、次のいずれかを返します。
リターン コード | 説明 |
---|---|
|
NdisAllocateNetBufferListContext は、NET_BUFFER_LIST_CONTEXT構造体の Offset メンバーの値を減らすか、新しいメモリを割り当てることによって、コンテキスト領域を正常に割り当てることに成功しました。 |
|
リソースが不足しているため、NdisAllocateNetBufferListContext が失敗しました。 |
|
リソースが不足している以外の理由で NdisAllocateNetBufferListContext が失敗しました。 |
注釈
要求を満たすのに十分な未使用のコンテキスト領域が NET_BUFFER_LIST_CONTEXT 構造体に存在する場合、 NdisAllocateNetBufferListContext は単に、NET_BUFFER_LIST_CONTEXT構造体の Offset メンバーの値を減らします。 それ以外の場合、NDIS はコンテキスト領域に新しいメモリを割り当てます。 次に NdisAllocateNetBufferListContext を呼び出してもメモリを割り当てる必要がないように、ContextBackFill を指定して追加のメモリを割り当てることができます。
を呼び出します。 NdisAllocateNetBufferListContext で割り当てられたNET_BUFFER_LIST_CONTEXT構造体のコンテキスト領域を解放する NdisFreeNetBufferListContext 関数。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis/nblapi.h (ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_NetBuffer_Function(ndis) |