阅读:1196回复:4
在DS中访问memory空间,如何传递偏移量
用DS做一pci的memorry空间读写,我用readfile/writefile将用户程序的读写请求传至驱动,然后在驱动中调用KmemoryRange的ind/outd,但我没办法将偏移量传递过去,不知如何处理?请大侠指教。谢谢!
|
|
沙发#
发布于:2003-06-28 14:06
我以前看到过一些帖子上说,用DEVICEIOCTL来传递这个偏移量,两个缓冲区都用上。
|
|
|
板凳#
发布于:2004-01-11 17:30
具体怎么用?
|
|
|
地板#
发布于:2004-01-12 17:27
你把offset和数据放在一个数组里一起传过去不就行了?
比如: 1、应用程序: ULONG num=0; ULONG val[2]; val[0]=offset; ReadFile(hDevice,val,sizeof(val),&num,NULL); 2、驱动程序: KMemory Mem(I.Mdl()); PUSHORT pBuffer = (PUSHORT) Mem.MapToSystemSpace(); ULONG offset=(pBuffer[0]; pBuffer[1] = m_BAR2.ind(offset); 如此一来,val[1]中就存有读取的数据了 |
|
地下室#
发布于:2004-01-13 02:27
dswei说的对!把你要传的数据放在一个数组里面一起传过去。
|
|