| 
					阅读:1148回复:8
				 快速抢答!
					如果WDM中有一块内存,buffer1,这时
 NewBuffer = ExAllocatePool(NonPagedPool,NewBufferSize); 然后 RtlCopyMemory(NewBuffer,buffer1,BufferSize); buffer1 = Newbuffer 问现在内存中有几块buffer。 a 一块 NewBuffer b 两块 NewBuffer 与 buffer1 | |
| 
 | 
| 沙发#发布于:2002-07-31 08:58 
					答2块,呵呵!				 | |
| 板凳#发布于:2002-07-31 08:58 
					有正确的吗?
 NewBuffer是就一个,可是buffer1以前指向的那块还在啊。 a倒是不错。 | |
| 地板#发布于:2002-07-31 09:02 有正确的吗? 我也觉得是一块。这是Chris Cant例子中的WDM1。程序的作用是,如果写入的数据比缓存大则扩大缓存,从例子的宗旨看,应该是一块内存。 可是以前的一块怎么消失的呢? 第一个答对的,和解释清楚的才有分哦。 | |
| 
 | 
| 地下室#发布于:2002-07-31 09:02 有正确的吗? 楼上的说的对呀,没有正确答案吧 | |
| 
 | 
| 5楼#发布于:2002-07-31 09:05 
					buffer1是从哪来?				 | |
| 6楼#发布于:2002-07-31 09:06 buffer1是从哪来? buffer1 是程序开始时, 用ExAllocatePool(NonPagedPool,BufferSize1);得到的。 | |
| 
 | 
| 7楼#发布于:2002-07-31 09:11 
					buffer1 = Newbuffer
 不释放的吗?! | |
| 8楼#发布于:2002-07-31 09:26 
					应该是两块。
 还有一块没有释放。呵呵 应该copy后,ExFreePool()。 | |
| 
 | 
 
							
 
				 
				
