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
先前從傳回的NET_BUFFER_LIST結構集區句柄 NdisAllocateNetBufferListPool 函式。 NET_BUFFER_LIST_POOL_PARAMETERS結構的 fAllocateNetBuffer 成員,呼叫端傳遞至 NdisAllocateNetBufferListPool 的 fAllocateNetBuffer 成員必須設定為 TRUE,且 DataSize 成員設定為零。 如果此參數為 NULL,NDIS 會使用內部集區。
[in] StartOffset
要在每個來源開頭略過的數據量 NET_BUFFER 結構。 這個數量除了NET_BUFFER 結構之 DataOffset 成員中指定的值之外。
[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 和更新版本支援。 |
目標平台 | Universal |
標頭 | 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