阅读:1613回复:4
对网卡驱动进行操作的问题
我想在应用层对网卡驱动进行操作,不知能不能使用deviceiocontrol等函数。由于在网卡的微端口驱动程序中没有irp,不知能不使用这些函数。
|
|
沙发#
发布于:2001-12-26 22:54
我想在应用层对网卡驱动进行操作,不知能不能使用deviceiocontrol等函数。由于在网卡的微端口驱动程序中没有irp,不知能不使用这些函数。 能用,在miniport driver里面用ndismregisterdevice而不是 iocreatedevice创建设备,如果你的miniport不打算被停用, 你用iocreatedevice也没有多少大不了的。这个结果就是你的 unload函数不会被调用,你永远也没有机会调用iodeletedevice。 如果是在imd,ms的ddk document虽然也说过同样的话,可是 我的实验结果是效果是一样的,都是不能完全卸载,都必须 reboot。原因在于protocol_unload函数永远都不被调用,因此, iodeletedevice也不会被调用。不管使用何种方法创建device 效果都是一样。果然,后来我在osr站点上看到了这个bug,但是 w2k sp2也不解决这个bug,这个bug在winxp之中已经得到解决。 |
|
|
板凳#
发布于:2001-12-27 10:58
原来是系统的bug,我还以为是我程序的问题呢.
我得usb设备就收不到DriverUnload消息, 最终是在MiniportHalt里面删除设备的. 谢谢Huyg斑竹解惑 |
|
|
地板#
发布于:2001-12-27 13:04
谢谢版主和各位,不知各位看过drivernetworks下的例子没有,在里面没有出现irp,那么应用程序对miniport驱动怎样进行I/O控制呢?
版主所说的miniport被停用是指的什么,在miniport驱动中并没有unload呀。 |
|
地下室#
发布于:2001-12-27 13:38
另外还想请教如果在驱动程序中不使用IoCreateDevice创建驱动对象,在应用程序中是不是就不能使用deviceiocontrol.
我还听别人说过,可以不使用deviceiocontrol就直接使用writefile和readfile,不知是否正确。如果正确应该在什么情况下这样做。 |
|