NdisAllocateReassembledNetBufferList 函数 (ndis/nblapi.h)
调用 NdisAllocateReassembledNetBufferList 函数以重新组合碎片 NET_BUFFER_LIST 结构。
语法
NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateReassembledNetBufferList(
NET_BUFFER_LIST *FragmentNetBufferList,
[in, optional] NDIS_HANDLE NetBufferAndNetBufferListPoolHandle,
[in] ULONG StartOffset,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in] ULONG AllocateReassembleFlags
);
参数
FragmentNetBufferList
指向要重新组合的NET_BUFFER_LIST结构的指针。
[in, optional] NetBufferAndNetBufferListPoolHandle
以前从
[in] StartOffset
要在每个源 NET_BUFFER 结构的开头跳过的数据量。 此量是除 DataOffset NET_BUFFER 结构成员中指定的值之外。
[in] DataOffsetDelta
在重新组合NET_BUFFER结构中添加的数据空间 字节数。
[in] DataBackFill
如果需要分配 未使用的数据空间(回填空间),则此参数除了 DataOffsetDelta 之外,还指定要分配 未使用的数据空间 字节数。
[in] AllocateReassembleFlags
可与 OR作结合使用的 NDIS 标志。 将此参数设置为零。 目前没有为此函数定义的标志。
返回值
如果重新汇编作成功,NdisAllocateReassembledNetBufferList 返回重新组合NET_BUFFER_LIST结构。 如果作失败,它将返回 NULL。
言论
NdisAllocateReassembledNetBufferList 分配、初始化和返回一个新的 NET_BUFFER_LIST 结构,其中包括一个 NET_BUFFER 结构和一个 MDL 链。 新的NET_BUFFER_LIST结构描述了驱动程序在 fragmentedNetBufferList 中传递的碎片源NET_BUFFER_LIST结构相同的数据。 跳过每个分段NET_BUFFER结构中 StartOffset 中指定的字节数后,NDIS 会将每个碎片NET_BUFFER结构中的剩余数据串联成一个重新组合NET_BUFFER结构。 重新组合NET_BUFFER_LIST结构不包括初始 NET_BUFFER_LIST_CONTEXT 结构。
调用 NdisFreeReassembledNetBufferList 函数释放重新组装NET_BUFFER_LIST结构和所有关联的NET_BUFFER结构和 MDL 链。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.0 及更高版本中受支持。 |
目标平台 | 普遍 |
标头 | ndis/nblapi.h (include ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_NetBuffer_Function(ndis),NdisAllocateReassembledNetBufferList(ndis),NdisAllocateReassembledNetBufferList_InitFail(ndis) |
另请参阅
NET_BUFFER_LIST_POOL_PARAMETERS
NdisAllocateNetBufferListPool NdisFreeReassembledNetBufferList