網路資料結構
網路資料是由透過網路傳送或接收的資料封包所組成。 NDIS 提供資料結構來描述及組織這類資料。 NDIS 6.0 和更新版本的主要網路資料結構如下:
下圖說明這些結構之間的關聯性。
在 NDIS 6.0 和更新版本中, NET_BUFFER 是封裝網路資料的基本建置組塊。 每個NET_BUFFER結構都有 MDL 鏈結。 MDL 會將資料緩衝區的位址對應至NET_BUFFER結構指定的資料空間。 此資料對應與 NDIS 5 的 MDL 鏈結相同。x 和舊版驅動程式會在 NDIS_PACKET 結構中使用。 NDIS 提供操作 MDL 鏈結的函式。
多個NET_BUFFER結構可以附加至NET_BUFFER_LIST結構。 NET_BUFFER結構會組織為 Null 終止的 Singly 連結清單。 只有源自NET_BUFFER_LIST結構或 NDIS 的驅動程式應該直接修改連結清單,以插入和刪除NET_BUFFER結構。
NET_BUFFER LIST 結構包含可描述附加至清單之所有 NET_BUFFER 結構的資訊。 如果驅動程式需要額外的內容資訊空間,驅動程式可以將這類資訊儲存在NET_BUFFER_LIST_CONTEXT結構中。 NDIS 提供函數來配置、釋放和存取NET_BUFFER_LIST_CONTEXT結構中的資料。
可以附加多個NET_BUFFER_LIST結構,以形成NET_BUFFER_LIST結構的清單。 NET_BUFFER_LIST結構會組織成 Null 終止的 Singly 連結清單。 驅動程式可以直接修改連結清單,以插入和刪除NET_BUFFER_LIST結構。