共用方式為


進階作業

進階作業會減少NET_BUFFER結構或NET_BUFFER_LIST結構中所有NET_BUFFER結構中使用的資料空間大小。

驅動程式會使用下列進階函式:

NdisAdvanceNetBufferDataStart

NdisAdvanceNetBufferListDataStart

進階作業有時會釋放與NET_BUFFER結構相關聯的 MDL。 為了提供釋放 MDL 的機制,驅動程式可以提供 NetFreeMdl 函式的選擇性進入點。 如果進入點為 Null,NDIS 會使用預設方法來配置 MDL。 MDLs 只能在 NetFreeMdl 內釋放,該相互機制是用來在 NetAllocateMdl 函式中配置 MDL 的機制。

若要取得新的DataLength,NDIS 會從目前的DataLength減去驅動程式指定的DataOffsetDelta。 如果先前的活頁作業配置了新的資料空間,則進階作業可以釋放這類先前配置的記憶體。 如果進階作業沒有釋放記憶體,NDIS 只會將 DataOffsetDelta 新增至目前的 DataOffset ,以取得新的 DataOffset 。 如果進階作業釋放記憶體,NDIS 會據以調整 DataOffset

針對傳送完整案例,進階作業可以釋放先前的作業中配置的記憶體。 為了提升效能,驅動程式應該先配置足夠的資料大小,再傳送以容納所有基礎驅動程式的健全作業。

針對接收指示案例,進階作業只會據以調整 DataOffsetDataLength 。 在進階作業之後,較低層的標頭會保留在 未使用的資料空間中。