下图显示了 NetAdapterCx 对象的默认父子关系。 父对象位于图的顶部,因此,例如,NETADAPTER 对象默认为 WDFDEVICE 对象的子对象。 可以有多个实例的对象由一个双框表示。
WDFDEVICE 对象是表示设备的标准 框架对象。 NETADAPTER 对象表示网络接口,它是所有网络 I/O 的终结点。 每个 WDFDEVICE 可以有多个 NETADAPTER 对象,WDFDEVICE 是每个 NETADAPTER 的父对象。
大多数网络接口卡(NIC)驱动程序只有一个 NETADAPTER 用于其物理设备,但如果某些客户端驱动程序管理具有多个槽的服务器 NIC,则某些客户端驱动程序可能有多个 NETADAPTER。 例如,移动宽带 WDF 类扩展(MBBCx) 客户端驱动程序可以管理多个 NETADAPTER 对象,每个对象都表示额外的数据包数据协议(PDP)上下文。
必须通过调用 netAdapterInitAllocate 和 NetAdapterCreate,在客户端驱动程序的 EVT_WDF_DRIVER_DEVICE_ADD 回调函数中初始化和创建 NETADAPTER 对象。 然后,必须通过调用 NetAdapterStart,从驱动程序的 EVT_WDF_DEVICE_PREPARE_HARDWARE 回调函数中启动它。 在调用 NetAdapterStart之前,驱动程序可以选择设置适配器的功能,例如链接层功能、电源功能、数据路径功能、接收缩放功能和硬件卸载功能。
有关 NET_PACKET和 NET_FRAGMENT 对象之间的关系的详细信息,请参阅 数据包描述符和扩展。 有关 NET_RING 对象的详细信息,请参阅 网络环简介。