阅读:2565回复:5
应用程序如何与NDIS的驱动通信?
编写了一个NDIS的中间层的驱动,用来把ICMP的包过滤掉,要写一个程序把抛的包显示一下.
如何才能在驱动中与应用程序通信? |
|
沙发#
发布于:2003-09-24 10:11
可以在应用程序里面设置一个Event,用一个线程等待事件发生,
然后用DriverIoControl把这个Event传给驱动,驱动再用ObReferenceObjectByHandle将这个Event转成内核的Event,在 驱动里面用KeSetEvent就可以发信号通知应用程序有包丢弃了 可以参见Walter Oney 的《windows driver model》第9章第3节 [编辑 - 9/24/03 by Flstar] |
|
板凳#
发布于:2003-09-24 11:03
太感谢了,我是刚开始学驱动,其实很想知道一两本好书名字.目前就一本关于如何拦络包的,知道的太少了
|
|
地板#
发布于:2003-09-25 10:12
是不是说:
如果NDIS驱动和外界的应用成训通讯,都可以采用你说得这种方式? |
|
地下室#
发布于:2003-09-25 16:21
好像还有其它方法,也可参见《Windows设备驱动程序(VxD与WDM)开发实务》中的第四章。
|
|
5楼#
发布于:2010-03-11 14:49
可以在应用程序里面设置一个Event,用一个线程等待事件发生, 然后用DriverIoControl把这个Event传给驱动,驱动再用ObReferenceObjectByHandle将这个Event转成内核的Event,在 驱动里面用KeSetEvent就可以发信号通知应用程序有包丢弃了 可以参见Walter Oney 的《windows driver model》第9章第3节 非常感谢 正在找这方面资料 |
|