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结构分配内存(如果需要分配)。 标记是一个字符串,由单引号分隔,最多包含四个字符,通常按反向顺序指定。 内核池标记可帮助 NDIS 标识内存的所有者。
返回值
NdisAllocateNetBufferListContext 返回下列值之一:
返回代码 | 说明 |
---|---|
|
NdisAllocateNetBufferListContext 通过减少 NET_BUFFER_LIST_CONTEXT 结构的 Offset 成员的值或通过分配新内存成功分配上下文空间。 |
|
由于资源不足,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 (包括 ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_NetBuffer_Function (ndis) |