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
除了 ContextSize的值外,内存量还用于分配 NDIS 是否必须分配内存来满足请求。 此数量必须是 sizeof(void*)
定义的值的倍数。
[in] PoolTag
NDIS 用于分配NET_BUFFER_LIST_CONTEXT结构的内存(如果需要分配)的内核池标记。 该标记是一个字符串,用单引号分隔,最多四个字符,通常按反向顺序指定。 内核池标记可帮助 NDIS 识别内存的所有者。
返回值
NdisAllocateNetBufferListContext 返回以下项之一:
返回代码 | 描述 |
---|---|
|
NdisAllocateNetBufferListContext 通过 减少NET_BUFFER_LIST_CONTEXT结构 成员的值或分配新内存来成功分配上下文空间。 |
|
NdisAllocateNetBufferListContext 由于资源不足而失败。 |
|
NdisAllocateNetBufferListContext 由于资源不足的原因而失败。 |
言论
如果 NET_BUFFER_LIST_CONTEXT 结构中有足够的未使用的上下文空间来满足请求,NdisAllocateNetBufferListContext 只需减少NET_BUFFER_LIST_CONTEXT结构中 Offset 成员的值。 否则,NDIS 将为上下文空间分配新内存。 可以指定 ContextBackFill 来分配额外的内存,以便下一次调用 NdisAllocateNetBufferListContext 不必分配内存。
调用 NdisFreeNetBufferListContext 函数,以释放 NdisAllocateNetBufferListContext分配的NET_BUFFER_LIST_CONTEXT结构中的上下文空间。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.0 及更高版本中受支持。 |
目标平台 | 普遍 |
标头 | ndis/nblapi.h (include ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_NetBuffer_Function(ndis) |