zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2996回复:33

driver and application communication again! HELP!!!

楼主#
更多 发布于:2002-08-09 21:15
Webmasters and everybody, If anyone of you can help me, I will appreciate very much. Boss want me to write the NDIS IM driver, but I have no experience before at all. Really frustrated :(

我现要用ndis im 来作VPN,想在APPLICATION 里得到PACKET,MS PACKET 例子很好,但我用PCAUSA与它有所不同。想在TCPIP_TransferDataCompleteHandler 里得到PACKET,COPY到IRP->ASSOCIATEDIRP。SYSTEMBUFFER, 由於该函数无IRP参数, 故不知如何实现。若那位有小例子,请发给我作参考。不胜感激!
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-21 23:48
最近觉睡得不太好。看一下信箱。
按第一贴的“给分”键,给分。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-21 23:45
暂时还不用。 这么晚了还没睡哪。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-21 23:40
老莫, 我家里都揭不开锅了,还是咬牙给了你20分!别嫌少。。。

留下EMAIL地址,如果愿意,做个朋友。

yzhao71@yahoo.com

你要是缺分,到灌水版。我放给你。
我分还是很多的,也没什么大用。 :)
按第一贴的“给分”键,给分。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-21 23:06
老莫, 我家里都揭不开锅了,还是咬牙给了你20分!别嫌少。。。

留下EMAIL地址,如果愿意,做个朋友。

yzhao71@yahoo.com
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-21 10:48
下班前一同干活的老印被告知走人,兔死狐悲呀。。。

那边的公司就喜欢这样,没文化。 :mad:
按第一贴的“给分”键,给分。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-21 06:49
下班前一同干活的老印被告知走人,兔死狐悲呀。。。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-21 01:57
不过说真的,有老虎你这样的人在国内撑着,真让人欣慰。我认识你们学校的一对,自控系和计算机系的,也在这边奋斗呢。(不过他们是参军前的一届)
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-21 00:04
看走了眼 :)
这样的公司当然不错啦。不过要在国内生存,得看有多少客户。站里的兄弟愿意陶银子就行! :)另外,搞技术咨询和培训胡帮主都可以捞的盆满钵满。 :)
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-20 23:05
胡帮主, 我举双手赞成!如果您有更好的实现, 下回建议我们头用您的!只是这次我们在网上搜来搜去,就只看到PCAUSA。其实论水平,我觉得还是国内高一些。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
10楼#
发布于:2002-08-20 22:55
感谢MO帮主帮助!我7点钟下班,9点钟到家,立即在家里给您发贴。

这样的公司在中国,作技术支持还行。卖源码,问问站长同意吗。 :)
美国国情是公司里决不用没有LICENSE的软件,为了把一台95的机器装成2000作调试,都费了不少周折!

我先读一下胡帮主的大作,有问题还得向各位求教!

ZYH



本人认为:
1、pcausa的source并不怎么样,也不怎么新。
2、国内的优势至少有一点,至少技术支持可以比pcausa
做的好得多。
3、还可以做做软件外包,这一点pcausa做不到吧?


我不喜欢混战,我希望能够有一天看到许多公司都使用
我做的driver封装一个界面混战。

tnnd,大家都是人,美国人也是人,我也是人,为什么我
就干不过老美?不服!
不再回忆从前,我已经生活在幸福当中。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-20 21:24
感谢MO帮主帮助!我7点钟下班,9点钟到家,立即在家里给您发贴。

这样的公司在中国,作技术支持还行。卖源码,问问站长同意吗。 :)
美国国情是公司里决不用没有LICENSE的软件,为了把一台95的机器装成2000作调试,都费了不少周折!

我先读一下胡帮主的大作,有问题还得向各位求教!

ZYH
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-20 16:40
还要记得开一个bbs用来回答问题。
或者在sohu之类的地方挂一个专栏连接。
按第一贴的“给分”键,给分。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2002-08-20 16:32
看来在国内开一个类似的公司,光提供技术支持或者
标榜自己提供良好的代码售后服务也能生存。


[quote]帮主见笑了。。。

我们用PCAUSA 作VPN。想从DRIVER里得到PACKET,送到WIN32里进行加密/解密,再送回DRIVER。 现在我的问题是不能把PACKET拷到IRP->ASSOCIATEDIRP->SYSTEMBUFFER。如前所述,最先得到PACKET是在VOID TCPIP_TransferDataCompleteHandler (
NDIS_HANDLE ProtocolBindingContext,
PNDIS_PACKET Packet,
NDIS_STATUS Status,
UINT BytesTransferred
)
里。我用了一个全局变量, 在这个函数里将PACKET内容COPY到该全局变量,
NdisMoveMappedMemory(data1, pBuffer->m_IBuffer, MAX_ETHER_SIZE);
但在另一处将该变量打印, 发现两处内容不符。不知是否在DRIVER里不能用这种方法。

不怕您笑话,为了从DRIVER里得到PACKET,已耗了一个多月。:(

每次问PCAUSA的那个托马斯,总是让我看书,参加培训班,急死我了!!!

先行谢过!分数不是问题 :)

ZYH

 


你们买的托马斯同志的源码?
这同志的售后服务也太差了!
 :cool: [/quote]
不再回忆从前,我已经生活在幸福当中。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-08-20 10:05
对了你几点下班?这么现在还在网上?
按第一贴的“给分”键,给分。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-08-20 10:04
到微软下载一个输入法软件很容易的啦。 :)
第一个问题,去看huyuguang 同志的文章
在这里:
http://www.driverdevelop.com/read.php?t=A&id=107
这同志好几年前写的。我们大家都向他学到了不少东西。

第2个问题,你可以试着看一下oney的书。
按第一贴的“给分”键,给分。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-08-20 09:40
I think he is not a nice guy,  We paid him 1000 bucks. :(

Now two more questions:

1. I want the driver to trigger the pass of packets to the application. But the Control Code is passed from Application to Driver, how can I trigger the driver when new packets comes in? In other postings I saw event or timer can do this, can anyone of you give me a more detailed idea?

2. In DeviceIoControl there is a Overlapped struct, if it\'s not null, the IO should be asynchronous. Can you give me some idea what how this struct functions?

Thanks Lao Mo and Lao Hu, please excuse me for my florida English since I don\'t have a Chinese word processer on this machine. :(

zyh
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-08-20 09:24
帮主见笑了。。。

我们用PCAUSA 作VPN。想从DRIVER里得到PACKET,送到WIN32里进行加密/解密,再送回DRIVER。 现在我的问题是不能把PACKET拷到IRP->ASSOCIATEDIRP->SYSTEMBUFFER。如前所述,最先得到PACKET是在VOID TCPIP_TransferDataCompleteHandler (
NDIS_HANDLE ProtocolBindingContext,
PNDIS_PACKET Packet,
NDIS_STATUS Status,
UINT BytesTransferred
)
里。我用了一个全局变量, 在这个函数里将PACKET内容COPY到该全局变量,
NdisMoveMappedMemory(data1, pBuffer->m_IBuffer, MAX_ETHER_SIZE);
但在另一处将该变量打印, 发现两处内容不符。不知是否在DRIVER里不能用这种方法。

不怕您笑话,为了从DRIVER里得到PACKET,已耗了一个多月。:(

每次问PCAUSA的那个托马斯,总是让我看书,参加培训班,急死我了!!!

先行谢过!分数不是问题 :)

ZYH

 


你们买的托马斯同志的源码?
这同志的售后服务也太差了!
 :cool:
按第一贴的“给分”键,给分。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-08-20 06:38
感谢各位斑竹,终於在下班前在WIN32理得到PACKET。用的是DEVICEIOCONTROL。
zyhflorida
驱动牛犊
驱动牛犊
  • 注册日期2002-08-09
  • 最后登录2003-11-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-08-20 03:55
WIN32里的函数如下:

void CPIMApi::GetPacket()
{
unsigned char v[1515];
unsigned char t[1515];
ULONG cbBytesRet =0;
OVERLAPPED      overlapped;

memset(v, 0, 1515*sizeof(unsigned char));
memset(t, 0, 1515*sizeof(unsigned char));

memset(&overlapped, 0, sizeof(OVERLAPPED));
overlapped.hEvent = CreateEvent(
NULL, // pointer to security attributes
FALSE, // automatic reset
FALSE, // initialize to not signaled
NULL
); // pointer to the event-object name

ReadFile( m_hDrv, t, 1515*sizeof(unsigned char), &cbBytesRet, &overlapped);
 
printf(\"Test value is %x%x%x%x%x%x%x%x%x%x%x \\n\", t[0], t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]);

}

[编辑 -  8/20/02 by  zyhflorida]
上一页
游客

返回顶部