阅读:7363回复:51
北京 秋季 NDIS 大会 (驱动开发网)
请大家列一下讨论主题 及地点,方式!
欢迎公司用户赞助此次聚会.所有讨论内容将形成录音供下载! 附: 公司用户可以以提供场所及纪念品的形式 为此次聚会提供赞助,作为回报, 本站免费刊登贵公司广告一月! 欢迎安全公司参加!此次讨论不限平台..... 赞助请致电: 13910206425 其它事情请勿打扰.谢谢! |
|
最新喜欢:okincn
|
沙发#
发布于:2002-08-08 19:52
请大家列一下讨论主题 及地点,方式! 大体是什么时间?地点? 有饭吃没有? 本人长时间吃2块6毛钱的中饭和晚饭,已经快要坚持不下去了。 有免费的T-shirt领没有? 本人身上的那件才花19块钱买的T-shirt被人指责说很“家居” 发拖鞋否? 进入夏季以来,每天穿拖鞋上班,拖鞋已经快要报废了。 有mm参加没有? ........ 提供讲稿者又没有好处? 本人有一些废话,想和大伙交流交流。 欢迎加密卡厂商派人参加,我正打算和他们讨论讨论加密卡 接口规范,免得每次拿到加密卡之后总是要重新写driver,真tmd烦 闷。 |
|
|
板凳#
发布于:2002-08-08 21:19
你当然要去了,否则怎么演戏?????hehe
午餐一定少不了的,这顿饭我请定了, 就怕你不来. t-shirt估计没戏,要不我给你买一件21块的, 再用毛笔写上几个字? MM地不知道了...我还想找一个呢..xixi 提供讲稿者--------money估计没戏了..其它的...hehe 我也不清楚 |
|
|
地板#
发布于:2002-08-09 09:17
要去要去,不发言光听行不行?
|
|
|
地下室#
发布于:2002-08-09 09:29
为什么总是在北京,搞得我总是参加不成!
快说定时间,我争取一个出差机会去参加。 有没有在上海组织呀,这样离我也近一点。 |
|
5楼#
发布于:2002-08-09 09:47
去年没去成,今年一定得去向大家学习学习。
|
|
|
6楼#
发布于:2002-08-09 11:54
唉,多半是没机会认识各位大侠了,只能看看照片,可这样就交不到朋友!
znsoft,一定要把他们的讲稿出版在本论坛上;最好能在会场多放几个录音机,把他们的技术讨论也录下来,然后整理出版在本论坛中(znfot,你忙的话,讲稿及录音的整理工作我可以作的)。 提供讲稿者又没有好处?To: Huyg,你对加密卡的接口规范有什么意见,可以在此就提出,我感觉这里作加密卡的人不少,大家先讨论一下,不是每个人都能去的。另外,我还是奇怪,你用的系统非常少见吗?为什么要自己作Driver |
|
7楼#
发布于:2002-08-09 15:46
对,光听不发言行吗?
|
|
|
8楼#
发布于:2002-08-09 17:50
我也想听听.
|
|
9楼#
发布于:2002-08-09 18:59
什么时候?
|
|
10楼#
发布于:2002-08-09 19:39
嘻嘻,我也想去玩呢,可惜。。。。。:(
|
|
|
11楼#
发布于:2002-08-09 19:44
大家讨论一下具体的时间和形式吧
|
|
|
12楼#
发布于:2002-08-13 17:45
最新消息:
已经有人赞助,时间定在 9月中旬........ 有意都可以报名了.hehe |
|
|
14楼#
发布于:2002-08-14 11:58
想参加,可是。。。
|
|
15楼#
发布于:2002-08-14 15:07
我去,我去,请ZN 告之时间,地点!!
|
|
|
16楼#
发布于:2002-08-15 12:46
快告知时间和地点,绝对要去的,就算自费也要去,嘿嘿!!!
|
|
17楼#
发布于:2002-08-15 14:44
你当然要去了,否则怎么演戏?????hehe 讲稿的草稿... 如果我的确有空去的话...我不能保证一定能够去,因为主任同志 已经威胁说我如果再不上班,就要让我去劳教了,因此这段时间 心情极为恶劣。同时我还要装得老老实实干活的样子。 客套话略。各位可以根据自己的需要自己填空。 时间有限,我只讲两个我自己关心的问题,希望也是大家关心 得问题。 问题一: 1、我需要支持9x系统,那么我应该如何处理那些可恶的vxd? 从代码维护的角度出发,应该尽量编写sys驱动程序,而不应该 写vxd。写vxd的唯一理由是需要支持win95,可是目前似乎已经 没有用win95的需求了。 用vxd的另外一个不利因素还有,某些驱动程序只能用wdm,例如 usb。这种情况下必须vxd call wdm,如果在内核异步,那还需要 用callback,又涉及到wdm call vxd。 由于目前有一些程序看起来似乎只有使用vxd写,更为实用的解释 是目前网上散布着许多ndis 方面vxd的source。一个原因是作为 公司来说,不愿意抛弃以前的稳定版本,另一个原因是作为新手, 企图站在巨人的肩膀上。 下面我提供两种处理vxd遗留代码的方案,这些事情正是前段时间 我所郁闷的。 第一种方案是,保留以前的vxd代码中的核心功能,因为有些代码 似乎难以使用sys实现,例如一些文件driver。这样,核心功能 无法使用sys。这种情况下为了代码重用最大化,应该把那些非 核心功能的代码,例如加密,查表等等提出来用sys实现,这样 可以保持9x/nt/2k/xp兼容。提取出来之后需要实现vxd call wdm, 本站有一篇numega的关于vxd call wdm,文章中说建议尽量不 要使用,因为不安全。numega的方法非常简单,看起来并不可行, 但是估计vc6比较智能,可以自动生成vxd和lib的链接代码。这种 方法在实践中的确不安全,常常无故dump。为了实现安全vxd call wdm,更为合适的方法不是直接调用函数(象wdm call wdm一样)。 而是通过vxdcall。这种情况下需要写一个小wdm,输出一个vxd interface,把wdm的函数输出,使用 VMM_Add_DDB宏。 对于wdm call vxd,numage上面也有一篇文章,经过实践证明, 似乎是安全的。能够让vxd wdm之间正常稳定高效的通讯,绝对 是对程序员的考验,如果发现vxd头文件中的那些宏难以看懂, 并不需要沮丧,因为的确很难看懂----即使是对于非常有经验的 vxd程序员来说也是如此。 第二种方案是用wdm改写以前的vxd。这也同样是一个具有挑战性 的工作,因为有些做法你从来都不敢想,有些做法你从来没有听说 过,有些做法你只是在传说中听说,从来没有见过,总之,资料 非常有限,网上也几乎不可能得到什么帮助。但是一旦成功,效果 非常让人满意,9x和2k可以使用同一套代码,只需要使用少许条件 编译。如果魄力足够大,也可以实现2进制兼容(这可能吗?我从 来没有成功过,不过我见过有人成功过)。不仅仅是核心driver 兼容,辅助driver也兼容,最后,应用程序也是兼容的,如果运气 够好的话,安装程序也可以做到兼容。我的经验表明,对于winme 而言,实现起来要比98容易一些,但是98也并非不可能实现,需要 的只是勇气和自信----最好还有一些外界的鼓励/或者刺激,例如 失恋:-)。 问题二: 2、我应该怎样在核心处理我的卡调用? 通常情况下,你需要在核心的某处,例如接受函数或者发送函数 里面调用卡驱动或者usb驱动,原因也许只是要给数据包做一个 加密或者认证,或者更为单纯的是匹配firewall规则,或者如果 卡够智能的话,还让它计算chksum。无疑,卡是中断方式的,你 也的确不打算在核心的某处,通常是dpc优先级上对卡进行查询, 那显然会严重伤害你的自尊心。更严重的是,也许应用层上还需 要和卡通讯,显然,你不希望让cpu占用100%,连鼠标都只能跳动。 更可恶的是,写应用程序的那个人显然比较自私,而且受过良好的 教育,他不是用同步readfile/writefile/deviceioctl,他觉得 那样不够爽,他用的是异步io,因此你的卡驱动一下就收到了他 发下来的32个或者64个irp。而且返回一个他立即发一个,当他 需要对一个大文件进行加密的时候,你发现你的卡不处理完他 的所有irp几乎不可能接受你核心发过去的irp。而你的核心又 只能在那里傻等,这种做法非常愚昧,不是吗?(我常常扮演 的就是那个可恶的应用程序编写者,不过不幸的是,我同时还需要 扮演那个悲惨的驱动程序编写者。) 显然,你理想的状态是这样的,核心异步处理卡请求,并且 立即返回,核心请求优先级高于应用层请求,任何一个地方都 不诸塞,充分发挥双cpu或者双卡的优势。在核心层和应用层 同时用最大的速率调用时,cpu占用最大只达到60%左右,开销 都在上下文切换等等。cpu绝对不做任何查询工作。 为了达到这个效果,首先你需要大幅度的改造你的ndis驱动程序, 充分理解每一个细节-----而不仅仅是每一行代码,更多是代码 背后的细节。让原来的ndis 驱动程序能够实现重入、并发和回调。 不要指望ndis会帮你做什么,你最好是能够自己处理所有的重入 和异步的过程。这样你才不至于在系统工作了5分钟之后dump陷入 困惑。其次,你需要为你的卡驱动做一个包装,为你的irp处理 优先级和调度------如果你有两块卡的话。这样做,还有一个非常 大的好处是,顺便做一个卡驱动的通用接口也很令人愉快,这个 驱动程序对应用层提供cryptapi,应用程序不能直接访问卡, 这样也解决了所有的应用程序移植的问题。 这两点你都觉得太难,无法实现?那么有一个简单的方法-------- 我已经实现了3个版本的封装接口,提供所有这些你想要解决的功 能,提供wdm和vxd的接口,虽然我已经抛弃了那些vxd,我已经 用sys重新写过了,但是既然你无法抛弃它们........ 还有一个一揽子解决方案是,让我来帮你移植那些可恶的vxd... 今天我没有讲述任何技术细节,没有提到一个未公开的函数调用, 没有解释一个数据结构的含义,没有破析一个函数的用法,没有 讲述一个精妙的技巧。我得承认,我是故意的,但是并非恶意。 我只是不想让这些完全是细枝末节的东西吸引你的注意力,无疑, 这些东西是需要花费大量的时间的,我并不能够教会你什么,我 在这里唯一能够给你的只是一些思路和信心,告诉你这样能够行。 我自己在编码过程中,所遇到的最大的问题就是,没有人告诉我 这样一定行,所以我常常半途而废很多东西,而这些东西本来 只要多坚持一个星期就可以完美解决的。我相信在对于系统核心 的探索过程中,各位也会遇到和我相同的问题。 我能够在短短一个小时之内带给大家的也就只有这么多了,谢谢。 客套话略。各位可以根据自己的需要自己填空。 |
|
|
18楼#
发布于:2002-08-15 14:49
你是我们这次活动的核心,不能不去的啦!!!!!!!
否则真的没戏了.我们会定在周末的:) |
|
|
19楼#
发布于:2002-08-15 14:55
提议没有交论文的同志,大家交一点“会议费“
用来给老胡同志买中午饭。 :D [编辑 - 8/15/02 by moqingsong] |
|
|
上一页
下一页