最早出现的网络驱动应该是网卡驱动,这是Windows的下进行网络安全攻防常见的需求,为了进一步分割应用程序的网络数据传输与下层协议直到下层硬件的关系,又出现了协议驱动,后来微软和硬件商联合制定了NDIS标准,作为从硬件到协议的内核驱动程序的调用接口标准,而协议驱动与应用层的API之间,则出现了TDI接口,即从上到下的关系是
应用层API -> TDI -> 协议驱动 -> NDIS -> 下层硬件
Windows NT支持三种类型的驱动:
自上而下的关系为:
网络接口卡驱动(NIC)
NIC驱动管理网络接口卡(NIC)。NIC驱动接口在下边界直接控制硬件(NIC),在上边界提供上层驱动访问的接口:
发送和接收包
重置NIC(Reset)
停止NIC
查询NIC
设置NIC操作特性
NIC驱动的两种类型
微端口驱动:微端口驱动应用于管理NIC硬件特殊操作,包括在NIC上发送和接收数据。微端口驱动不能直接呼叫系统例程,只能呼叫NDIS提供的函数。
完全NIC驱动:完全NIC驱动不仅管理硬件而且管理NDIS完成的的操作系统特定任务。完全NIC驱动必须保持接收数据的绑定信息。
中间协议驱动