阅读:1364回复:4
在packet例子中是如何捕获数据包并传递给应用程序的?
如题:
1:packet协议驱动是怎样捕获到数据包的? 2:应用程序是通过 readfile 或 getoverlappedresult 得到捕获的数据包吗? |
|
|
沙发#
发布于:2004-03-29 20:07
可以看看packet例子代的Exe。 我的理解:
在绑定底层网卡时,用底层网卡的指针IoCreateDevice。IoCreateDevice提供ReadFile, WriteFile的处理程序。Win32程序必须先CreateFile Packet设备,发送Ioctl枚举为底层网卡创建设备的符号名,在用符号名CreateFile,再ReadFile. |
|
板凳#
发布于:2004-03-30 09:05
在testapp中接收数据包是这样的:
如果readfile返回为0,则调用getoverlappedresult. 但是: 1:在getoverlappedresult函数中没有任何交换缓冲区, testapp怎样得到的数据呀? 2:为什么readfile总是返回为0? |
|
|
地板#
发布于:2004-03-30 11:49
我记得看过他的说明,接收数据Readfile可能接受不到数据,因为必须有发送到这个网卡的包,他才能接受到数据。
|
|
|
地下室#
发布于:2004-04-01 01:10
在应用程序中建立一个Evnet然后在驱动程序中打开\BaseNamedObjects\你的Evnet名字,进行同步,由数据接收
调用DeviceIOControl读取数据 |
|