NDIS驱动开发入门:函数详解手册

2星 需积分: 9 9 下载量 196 浏览量 更新于2024-08-02 收藏 67KB DOC 举报
"NDIS+函数简明手册是针对NDIS驱动开发的新手参考资料,包含了NDIS驱动中关键的函数接口及其用途的简介。" NDIS(Network Driver Interface Specification,网络驱动程序接口规范)是微软定义的一套接口,用于网络驱动程序之间的通信,包括网络适配器微型端口驱动、协议驱动以及中间驱动。NDIS驱动程序通常分为三层:微端口驱动、协议驱动和过滤驱动。微端口驱动直接与硬件交互,协议驱动处理高层网络协议,而过滤驱动则可以插入这两者之间,提供额外的功能或者过滤数据。 在NDIS驱动中,以下是一些核心的微端口驱动程序函数: 1. **DriverEntry**: 这是驱动程序的入口点,由操作系统调用以初始化驱动程序。在这里,驱动程序会注册自己的回调函数,初始化必要的数据结构,并配置基本的设备状态。 2. **MiniportInitialize**: 此函数用于初始化网络接口卡(NIC)。它负责配置硬件、分配内存、初始化硬件寄存器等,使得NIC能够准备接收和发送数据。 3. **MiniportISR (Interrupt Service Routine)**: 这是NIC的中断服务例程,用于响应硬件中断。它通常运行在高优先级级别,快速处理中断并调度后续的处理工作。 4. **MiniportHalt**: 当驱动程序需要停止NIC操作时,会调用此函数。它负责释放资源,关闭中断,确保设备处于非活动状态。 5. **MiniportReset**: 硬件重置功能,用于恢复NIC到初始状态,解决可能的硬件故障或数据错误。 6. **MiniportSend/MiniportSendPackets**: 这些函数用于将数据包从驱动程序传递到网络上。它们负责打包数据,准备传输,并触发NIC的发送过程。 7. **MiniportReturnPacket**: 上层驱动程序完成对数据包的处理后,会通过此函数将接收的包返回给微端口驱动。 8. **MiniportQueryInformation/MiniportSetInformation**: 这两个函数分别用于查询和设置驱动程序或NIC的状态和配置信息。 9. **MiniportDisableInterrupt/MiniportEnableInterrupt**: 分别用于禁用和启用NIC的中断生成,以控制中断处理的频率和时机。 10. **MiniportSynchronizeISR**: 当多个函数需要访问共享资源时,此函数用于同步访问,防止并发问题,确保数据一致性。 11. **MiniportShutdown**: 在系统即将关闭时,驱动程序会调用此函数,以便将NIC恢复到初始状态,为下次启动做好准备。 12. **MiniportTimer**: 有时驱动程序需要使用定时器来安排未来的操作,例如超时处理、定期检查等,此时会用到这个函数。 NDIS+是NDIS的一个扩展,通常包含了一些新版本的NDIS特性或优化。上述函数是NDIS驱动开发的基础,理解并正确实现这些函数对于编写稳定的网络驱动程序至关重要。开发者在编写NDIS驱动时,需要根据实际需求选择和实现这些函数,以确保驱动程序能够有效地与操作系统、其他驱动以及硬件进行交互。