如何在2000下面读写物理内存?

win98ddk 2003-04-03 04:22:26
我现在对一款pci卡进行开发,其中需要对pci的缓冲进行读写,在98下是0xDC000028的内存物理地址,这个数据是我从别人的程序里面反汇编来的,自己也编程在98下测试过了,的确可行。但是我在2000下面测试的时候,就出错了,看样子2000下面不能够读写物理地址,不知道你有什么好方法吗?
另外,2000下的pci内存缓存是不是和98一样呢?
...全文
10 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
programmer200x 2003-05-21
希望得到更详细一点的答案。
回复
vcmfc 2003-04-08
to 2in98ddk:我不是告诉你了吗!,你试过吗?


真受不了。
回复
danielxuao 2003-04-07
不会阿,可以读写的阿,我用
transferPacket = (PHID_XFER_PACKET)Irp->UserBuffer;
RtlCopyMemory(。。。)可以读写的阿,你用的是什么语句阿?
回复
win98ddk 2003-04-07
Win98下面很好办,先将物理地址转化为线性地址,然后直接访问就可以了,我用VB都可以做得到,但是Win2000下面不好办了,物理地址0x80000000以上的都是驱动程序的区域,是系统保护的,你想访问它,首先就被win2000关掉你的应用程序了!!!
回复
win98ddk 2003-04-07
你是在Ring0的吗?那里应该可以读写的,但是我要用Ring3来读写他,就必须绕过Winnt的包围了,才可以到达巴格达.
回复
atm2001 2003-04-06

MiniMmGetPhysicalAddress proc virtualaddress:dword
mov eax,virtualaddress
cmp eax,80000000h
jb @f
cmp eax,0a0000000h
jae @f
and eax,1FFFF000h
ret
@@:
mov eax,0
ret
MiniMmGetPhysicalAddress endp




回复
vcmfc 2003-04-06
设备名:\\\\.\\PhysicalMemory
回复
vcmfc 2003-04-06
WIN 32API用CreateFile把内存设备打开,直接读写。
回复
win98ddk 2003-04-05
MmGetPhysicalAddress是不是Win32 API 里面的啊,它的含义是什么?
回复
cat_dog 2003-04-04
用MmGetPhysicalAddress得到虚拟地址,就可以写了.
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2003-04-03 04:22
社区公告
暂无公告