物理地址转换成虚拟地址MmMapIoSpace

    技术2022-05-11  73

    PVOID MmMapIoSpace( PHYSICAL_ADDRESS PhysicalAddress, ULONG NumberOfBytes, BOOLEAN CacheEnable ); 如果参数PhysicalAddress用的是OEMAddressTable的Physical Address,则要把这个地址右移8位. 如果参数PhysicalAddress用的是OEMAddressTable的Virtual Address,则不需要右移. BOOL VirtualCopy( LPVOID lpvDest, LPVOID lpvSrc, DWORD cbSize, DWORD fdwProtect ); 如果参数fdwProtect 用的是PAGE_PHYSICAL, 则lpvSrc可以用OEMAddressTable的Physical Address, 并需要把这个地址右移8位. 如果参数fdwProtect 没有PAGE_PHYSICAL, 则lpvSrc可以用OEMAddressTable的Virtual Address, 不需要把这个地址右移. 

    最新回复(0)