阅读:1831回复:14
怎么样把驱动程序中使用的内存,传给系统线程?
怎么样把驱动程序中使用的内存,传给系统线程?
如,在Write例程中,有一个char *的指针,怎么样能使系统线程访问到? |
|
沙发#
发布于:2002-10-28 16:40
用内存映射
好像DDK里有个ZwOpenSection,要不就是ZwCreateSection,你看看吧 |
|
|
板凳#
发布于:2002-10-28 16:54
用内存映射 能不能具体点啊???? |
|
地板#
发布于:2002-10-28 16:57
还要代码???没有,我不做驱动!!!
给你个思路,还不够??? :mad: :mad: :mad: |
|
|
地下室#
发布于:2002-10-28 16:59
用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。
|
|
5楼#
发布于:2002-10-28 17:03
用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。 大兄弟,他说的是驱动…………………………………… :( :( :( |
|
|
6楼#
发布于:2002-10-29 08:56
[quote]用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。 大兄弟,他说的是驱动…………………………………… :( :( :( [/quote] 你说得对,我说是驱动。由于系统线程,和Write例程在不同的级别上运行,所以防问不到。但我在另一个驱动中,声明了一个外部的变量,就可以访问。这是怎么回事啊? |
|
7楼#
发布于:2002-10-29 09:48
不懂你说的什么意思
你那20分不放了慰劳一下各位兄弟? |
|
|
8楼#
发布于:2002-10-29 10:26
[quote][quote]用AfxBegingThread或CreateThread创建线程的时候把指针作为参数传递过去。具体看一下这两个函数的说明。 大兄弟,他说的是驱动…………………………………… :( :( :( [/quote] 你说得对,我说是驱动。由于系统线程,和Write例程在不同的级别上运行,所以防问不到。但我在另一个驱动中,声明了一个外部的变量,就可以访问。这是怎么回事啊? [/quote] 系统现成??? |
|
|
9楼#
发布于:2002-10-29 15:32
难到没有人用过?????
|
|
10楼#
发布于:2002-10-29 16:13
什么时候放分?
|
|
|
11楼#
发布于:2002-10-30 09:51
什么时候放分? 没人知道,我放给谁去啊? |
|
12楼#
发布于:2002-11-01 09:12
没有人用过系统线程啊?
|
|
13楼#
发布于:2002-11-01 11:58
一般可以这样做,在EXTENSION结构中添一指针变量,在WRITE中将SystemBuffer值赋于前面的变量,而线程的上下文(CONTEXT)就指向EXTENSION,这样在线程中就可以利用该变量来使用那个缓存了。
这时候要注意,所指向的缓存一定要是非分而的。如果你的WRITE是BUFFERED,那就没事,同时在WIRTE_IRP被COMPLETE之后,SystemBuffer就不存在了,不可以再访问的哟。 |
|
|
14楼#
发布于:2002-11-01 19:06
是
|
|