Porting Send and Receive Operations to CoNDIS 6.0
The CoNDIS send and receive functions are similar to the connectionless send and receive functions. The primary difference between the CoNDIS and connectionless interfaces is how they manage virtual connections (VCs). For more information about connectionless send and receive operations, see Send and Receive Operations.
In a single function call, CoNDIS 6.0 drivers can send multiple NET_BUFFER_LIST structures with multiple NET_BUFFER structures on each NET_BUFFER_LIST structure. In addition, CoNDIS drivers can indicate completed send operations for multiple NET_BUFFER_LIST structures with multiple NET_BUFFER structures on each NET_BUFFER_LIST structure.
In the receive path, CoNDIS miniport drivers can provide a list of NET_BUFFER_LIST structures to indicate receives. Each NET_BUFFER_LIST that a miniport driver provides contains one NET_BUFFER structure. Because a different protocol binding can process each NET_BUFFER_LIST structure, NDIS can independently return each NET_BUFFER_LIST structure to the miniport driver.
To support NDIS 5.x and earlier drivers, NDIS provides a translation layer between the earlier NDIS_PACKET structures and the NET_BUFFER-based structures. NDIS performs the necessary conversion between NET_BUFFER structures and NDIS_PACKET structures. To avoid degrading performance because of translation, CoNDIS drivers must be updated to support NET_BUFFER structures and should support multiple NET_BUFFER_LIST structures in all data paths.
This section includes the following topics: