阅读:1728回复:4
想请教各位一个Ndis_Wdm驱动的问题
最近一直在做一个Ndis_Wdm设备的驱动,但始终对此驱动的结构了解的不是很清楚,想问问大家,希望能得到各位高手的指教。我们项目所要实现的功能就是把网络数据包写入存储器中,该存储器由一个PCI总线控制器(Ch365)控制,所以主要问题就要得到系统分配给Ch365的资源,比如说存储器映射基址等等。
我的初步设想就是首先用NdisMGetDeviceProperty函数得到指向下层物理设备的对象,然后给该设备发Irp请求包,但是我不明白的是当底层设备收到请求包后,怎么处理呢?我们在驱动程序中要包含Irp的处理代码吗?如果要的话该如何做呢? 各位高手能给我点建议吗?先谢了! ![]() |
|
沙发#
发布于:2007-08-24 19:32
总线接口是PCI,设备没有中断?不甚明白。如果有中断的话,不能用NDIS_WDM吧。NDIS_WDM的典型应用情况是USB
|
|
板凳#
发布于:2007-08-25 15:25
设备是有中断的。这个网卡由我们自己做的,365集成在板卡上。现在就是不知道在网卡驱动里面如何操作365,各位高手能给我一些建议吗?
|
|
地板#
发布于:2007-08-26 20:02
如果你是用CH365,意味着你这是一个PCI的目标卡,不应该和NDIS-WDM驱动有关系。
你这个实现,可以采用NDIS驱动程序来实现,把你的PCI的目标卡虚拟成网卡,然后把系统向这个网卡发送的网络数据报写入你的存储器中。 那么你这个就是一个采用PCI接口的NDIS网卡驱动程序设计。 |
|
地下室#
发布于:2007-08-26 22:29
谢谢各位解答,不胜感激!我刚接触驱动的开发,对这方面不是很了解,所以我还想具体的问下,是否有个方法可以做一个虚拟网卡,然后这里面调用365的驱动把网络数据写入365?还是说写一个PCI接口的Miniport驱动,在里面操作365?那这样就要获得365的一些资源,比如说存储器映射基址,中断等。这些资源如何获得呢,直接用NdisMQueryResource使用系统分配给网卡的资源?
|
|