yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1831回复:14

怎么样把驱动程序中使用的内存,传给系统线程?

楼主#
更多 发布于:2002-10-28 16:31
怎么样把驱动程序中使用的内存,传给系统线程?
如,在Write例程中,有一个char *的指针,怎么样能使系统线程访问到?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-28 16:40
用内存映射
好像DDK里有个ZwOpenSection,要不就是ZwCreateSection,你看看吧
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-28 16:54
用内存映射
好像DDK里有个ZwOpenSection,要不就是ZwCreateSection,你看看吧

能不能具体点啊????
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-28 16:57
还要代码???没有,我不做驱动!!!
给你个思路,还不够??? :mad: :mad: :mad:
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-28 16:59
用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-28 17:03
用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。

大兄弟,他说的是驱动…………………………………… :( :( :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-29 08:56
[quote]用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。

大兄弟,他说的是驱动…………………………………… :( :( :( [/quote]
你说得对,我说是驱动。由于系统线程,和Write例程在不同的级别上运行,所以防问不到。但我在另一个驱动中,声明了一个外部的变量,就可以访问。这是怎么回事啊?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-29 09:48
不懂你说的什么意思
你那20分不放了慰劳一下各位兄弟?
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-29 10:26
[quote][quote]用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。

大兄弟,他说的是驱动…………………………………… :( :( :( [/quote]
你说得对,我说是驱动。由于系统线程,和Write例程在不同的级别上运行,所以防问不到。但我在另一个驱动中,声明了一个外部的变量,就可以访问。这是怎么回事啊? [/quote]

系统现成???
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-29 15:32
难到没有人用过?????
lxcomcn
驱动老牛
驱动老牛
  • 注册日期2002-07-31
  • 最后登录2010-12-10
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望43点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-29 16:13
什么时候放分?
[img]http://www.nbuser.com/vb/avatar.php?userid=10792&dateline=1046232652 [/img] 我要作诗!!!
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-30 09:51
什么时候放分?

没人知道,我放给谁去啊?
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-01 09:12
没有人用过系统线程啊?
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-01 11:58
一般可以这样做,在EXTENSION结构中添一指针变量,在WRITE中将SystemBuffer值赋于前面的变量,而线程的上下文(CONTEXT)就指向EXTENSION,这样在线程中就可以利用该变量来使用那个缓存了。
这时候要注意,所指向的缓存一定要是非分而的。如果你的WRITE是BUFFERED,那就没事,同时在WIRTE_IRP被COMPLETE之后,SystemBuffer就不存在了,不可以再访问的哟。
少了e,就少了全部
gxpa1
驱动中牛
驱动中牛
  • 注册日期2002-10-30
  • 最后登录2010-09-02
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-01 19:06
游客

返回顶部