zzy918
驱动牛犊
驱动牛犊
  • 注册日期2001-04-26
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1613回复:4

对网卡驱动进行操作的问题

楼主#
更多 发布于:2001-12-26 21:04
我想在应用层对网卡驱动进行操作,不知能不能使用deviceiocontrol等函数。由于在网卡的微端口驱动程序中没有irp,不知能不使用这些函数。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
沙发#
发布于: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之中已经得到解决。
不再回忆从前,我已经生活在幸福当中。
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-27 10:58
原来是系统的bug,我还以为是我程序的问题呢.
我得usb设备就收不到DriverUnload消息,
最终是在MiniportHalt里面删除设备的.

谢谢Huyg斑竹解惑
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
zzy918
驱动牛犊
驱动牛犊
  • 注册日期2001-04-26
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-27 13:04
谢谢版主和各位,不知各位看过drivernetworks下的例子没有,在里面没有出现irp,那么应用程序对miniport驱动怎样进行I/O控制呢?
版主所说的miniport被停用是指的什么,在miniport驱动中并没有unload呀。
zzy918
驱动牛犊
驱动牛犊
  • 注册日期2001-04-26
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-27 13:38
另外还想请教如果在驱动程序中不使用IoCreateDevice创建驱动对象,在应用程序中是不是就不能使用deviceiocontrol.
我还听别人说过,可以不使用deviceiocontrol就直接使用writefile和readfile,不知是否正确。如果正确应该在什么情况下这样做。
游客

返回顶部