阅读:1092回复:0
如何将环0地址指针传到环3并进行读写操作呢?
case CmResourceTypeMemory:
{ // CmResourceTypeMemory haveport = FALSE; port = resource->u.Memory.Start; nports = resource->u.Memory.Length; needmap = TRUE; pdx->Physical_Membase = (PUCHAR) port.LowPart; //Physical_Membase为没有映射得物理地址首地址指针,我用DeviceIoControl传到环3 不能对它进行操作 pdx->MemLength = nports; pdx->MemPoint =(PUCHAR)MmMapIoSpace(port,pdx->MemLength,MmCached); //MemPoint为映射得地址首地址指针,我用DeviceIoControl传到环3 也不能对它进行操作 错误是:无效地址 我不是很明白,PCI插槽的卡,驱动应该怎样把这块卡上的DPRAM地址指针传到环3呢: 我已经做过试验,即在环0层找到//MemPoint,将DPRAM地址相对于//MemPoint的偏移量传到环3 读写均没有问题 |
|