wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:3936回复:14

谁有磁盘驱动访问网络的源代码,就是在磁盘驱动中加入TDI支持

楼主#
更多 发布于:2005-03-03 20:21
谁有磁盘驱动访问网络的源代码,就是在磁盘驱动中加入TDI支持

最新喜欢:

ljmmaryljmmar... hongsinghongsi...
21世纪是搜索的世界,看看BAIDU的股票就知道了。
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-04 11:34
I have
deltali
驱动小牛
驱动小牛
  • 注册日期2002-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-04 11:40
I have


兄弟,能否分享一下阿?
我又来了,生命不息,驱动不止。
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-04 16:57
兄台,能否共享一下你的资料
wdynasty@tom.com
21世纪是搜索的世界,看看BAIDU的股票就知道了。
piggy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2012-01-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-05 02:07
还是做个连接吧,大家可以共享
liuge
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-06 00:29
有一个比filedisk更简单的虚拟硬盘例子,网址是http://bcompute.com/rambler/cn/WinDriverDownload.htm。当然,功能也少一些,毕竟是一个演示程序嘛。

把这个例子中的Zw...函数调用改成对TDI的调用就可以了。

关于使用TDI,可以看一下DriverStudio的DriverNetwork库。
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-06 12:30
改起来比较麻烦吧,driverStudio有一个tdiclient的例子
但用在虚拟磁盘里面比较麻烦阿。库不一样。改起来很费尽阿
21世纪是搜索的世界,看看BAIDU的股票就知道了。
linweiwww
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-06 16:41
呵呵,你到本站的
http://www.driverdevelop.com/source.php?sortid=3
在下载列表里有TDI Client的例子代码!
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-06 19:37
tdiclient 的源代码我也有,
但是如何和虚拟磁盘做到一起,挺麻烦。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
liuge
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-06 23:26
实现一个TDI版的send,recv函数就可以了。

从DriverNetwork的KStreamSocket派生一个类,然后实现send, recv,connect方法。
实现send方法调用KStreamSocket::send就可以了,但要注意KStreamSocket::send方法是异步调用的,send完成后它要调用On_sendComplete虚方法。所以要重载这个方法。调用KStreamSocket::send以后,你可以等一个semaphore。然后当你的On_sendComplete被调用时Signal这个semaphore,就实现了同步版的send方法了。

实现connect方法调用KStreamSocket::connect。这个方法也是异步的,在完成时会调用On_connectComplete方法,所以要重载这个方法。实现同步版的方法同上。

实现recv麻烦些,TDI接口不推荐使用它提供的recv,而是需要重载KStreamSocket::OnReceive方法。你自己的recv可以等一个semaphore,然后当OnReceive被调用时signal这个semaphore,就实现了recv了。当然,别忘了在signal这个semaphore前把OnReceive传过来的数据保存在你自己的缓冲区中。

原理就是这样了。再看看DriverNetwork中的例子,就成了。

然后把vdisk中的Zw...函数调用改成对你的send, recv, connect的调用就可以了。简单的说,把open file部分改成对connect调用,读写改成send, recv调用即可。
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-07 16:24
非常感谢。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
liuge
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-10 12:34
 :cool:
miemie2005
驱动牛犊
驱动牛犊
  • 注册日期2005-07-26
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-07-27 00:38
liuge老大,能发一份给我吗?我的老师要我做类似的程序,急呢
mapleaves@gmail.com
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-07-27 13:38
下面是引用liuge于2005-03-06 23:26发表的:
实现一个TDI版的send,recv函数就可以了。

从DriverNetwork的KStreamSocket派生一个类,然后实现send, recv,connect方法。
实现send方法调用KStreamSocket::send就可以了,但要注意KStreamSocket::send方法是异步调用的,send完成后它要调用On_sendComplete虚方法。所以要重载这个方法。调用KStreamSocket::send以后,你可以等一个semaphore。然后当你的On_sendComplete被调用时Signal这个semaphore,就实现了同步版的send方法了。

.......


如果是用scsi miniport实现的虚拟磁盘,恐怕不能简单地替换吧,超时问题怎么办?
caterpillar1234
驱动牛犊
驱动牛犊
  • 注册日期2009-07-18
  • 最后登录2012-02-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-08-02 21:31
各位大大,可否寄给我一份类似的程序 caterpillar1985@hotmail.com
游客

返回顶部