阅读:2221回复:7
请问在WDM中有没有这样一个函数
请问在WDM中有没有这样一个函数:主要是实现类似于softice 中的物理地址转换为系统的线性地址。
在softice中用phys physaddress实现的。 最好那位大虾给一个使用的例子。不慎感谢! |
|
沙发#
发布于:2003-12-09 17:47
有的
|
|
|
板凳#
发布于:2003-12-10 09:52
没有,只能自己写
// 物理地址->线性地址 // 相当于SoftICE中Phys命令 // 搜索所有有效的页表寻找指定物理地址 // 有可能多个线性地址同时指向同一个物理地址 // 此函数若未输出任何结果表明当前还没有线性地址映射至此物理地址中 void PhysicalAddressToLinearAddress(ULONG pAddress) { unsigned int *pAddr; unsigned int *PageDirectoryEntry=(unsigned int *)0xC0300000; unsigned int *PageTableEntry=(unsigned int *)0xC0000000; int i,j; DbgPrint(\"\\n\"); for(i=0;i<1024;i++) if((PageDirectoryEntry&0xFFFFF000)&&(PageDirectoryEntry&0x00000001)) for(j=0;j<1024;j++){ pAddr=(int *)((int)PageTableEntry+i*4096+j*4); if((*pAddr)&0x00000001) if(((*pAddr)&0xFFFFF000)==(pAddress&0xFFFFF000)) DbgPrint(\"%08X\\n\", ((i*4*1024*1024+j*4*1024)&0xFFFFF000)|(pAddress&0x00000FFF)); } } |
|
|
地板#
发布于:2003-12-29 17:31
那请问这个在DDK中的程序是否能在DriverStudio封装的函数中应用呢?如果不能是否有其他的办法呢?
|
|
地下室#
发布于:2003-12-30 14:40
就想VtoolsD中的MapPhysToLinear()?在DS中有么?怎么用呀?
|
|
5楼#
发布于:2003-12-31 13:13
MmMapIoSpace maps the given physical address range to nonpaged system space.
PVOID MmMapIoSpace( IN PHYSICAL_ADDRESS PhysicalAddress, IN ULONG NumberOfBytes, IN MEMORY_CACHING_TYPE CacheEnable ); |
|
6楼#
发布于:2003-12-31 14:46
我明白了,多谢大家的帮助。 :)
|
|
7楼#
发布于:2004-01-07 22:00
thinking
|
|