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 函式。 呼叫者傳遞至 NdisAllocateNetBufferListPool 的 NET_BUFFER_LIST_POOL_PARAMETERS 結構 成員 fAllocateNetBufferListPool 成員必須設定為 true TRUE,且 DataSize 成員設定為零。 如果此參數 NULL,NDIS 會使用內部集區。
[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