NdisRetreatNetBufferListDataStart 函式 (ndis/nblapi.h)
呼叫 NdisRetreatNetBufferListDataStart 函式,以增加NET_BUFFER_LIST結構中所有NET_BUFFER結構中已使用的數據空間。
語法
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
[in] NET_BUFFER_LIST *NetBufferList,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
[in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);
參數
[in] NetBufferList
先前配置之NET_BUFFER_LIST結構的指標。
[in] DataOffsetDelta
每個NET_BUFFER結構中額外的 已使用數據空間 量。 如果沒有足夠的 未使用數據空間 來滿足要求,NDIS 會配置更多記憶體。
[in] DataBackFill
如果 NDIS 必須配置記憶體,此參數除了要配置的 DataOffsetDelta 參數值之外,還會指定資料空間量。
[in, optional] AllocateMdlHandler
NetAllocateMdl 函式的選擇性進入點。 如果呼叫端指定 NetAllocateMdl 函式的進入點,NDIS 會呼叫 NetAllocateMdl 來配置 MDL 和記憶體。
[in, optional] FreeMdlHandler
NetFreeMdl 函式的選擇性進入點。 如果呼叫端指定 NetFreeMdl 函式的進入點,NDIS 會呼叫 NetFreeMdl 以釋放 MDL 和記憶體。
傳回值
NdisRetreatNetBufferListDataStart 會傳回下列其中一項:
傳回碼 | Description |
---|---|
|
NdisRetreatNetBufferListDataStart 藉由減少 DataOffset 成員的值或配置新的記憶體,成功在所有NET_BUFFER結構上配置數據空間。 |
|
NdisRetreatNetBufferListDataStart 因資源不足而失敗。 |
|
NdisRetreatNetBufferListDataStart 因資源不足而失敗。 |
備註
呼叫 NdisRetreatNetBufferListDataStart 相當於呼叫NET_BUFFER_LIST 結構上每個NET_BUFFER結構的 NdisRetreatNetBufferDataStart 函式。 NdisRetreatNetBufferListDataStart 會藉由減少每個NET_BUFFER結構中的 DataOffset 成員值,嘗試滿足要求。 如果沒有足夠的 未使用的數據空間 ,此函式會配置新的緩衝區和 MDL,然後將新的 MDL 鏈結至NET_BUFFER結構上的 MDL 鏈結開頭。
呼叫 NdisAdvanceNetBufferListDataStart 函式,以釋放先前 NdisRetreatNetBufferListDataStart 呼叫中宣告的數據空間。 或者,驅動程式可以呼叫NET_BUFFER_LIST 結構上每個NET_BUFFER結構的 NdisAdvanceNetBufferDataStart 函式。 呼叫 NdisAdvanceNetBufferListDataStart 會更有效率。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis/nblapi.h (包含 ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_NetBuffer_Function () |