阅读:1466回复:2
请教几个概念~~
在看声卡驱动的过程中
TransBusAddrToStatic()是将PCI总线地址转化为一个物理系统地址,然后创建一个静态的、独立于进程的虚拟地址映射 HalTranslateBusAddress()是将PCI物理总线地址转化为物理系统地址 MmMapIoSpace()是将CPI物理地址空间映射为一个不分页的、进程相关的虚拟地址空间 我想问问: 1. 什么是PCI总线地址?什么有时物理系统地址? 2. TransBusAddrToStatic()和MmMapIoSpace()创建的虚拟地址空间有何不同? 实在有些糊涂?请大家指教? |
|
|
沙发#
发布于:2007-03-21 10:30
我的理解是
1.PCI总线地址指的是寄存器在PCI上的偏移量,而系统地址指寄存器在CPU上的绝对编址. 2.TransBusAddrToStatic()是把总线物理地址直接转化成虚拟地址,它里头调用了HalTranslateBusAddress(用来把总线物理地址转成系统物理地址)和MmMapIoSpace(把系统物理地址转化成虚拟地址).其中的虚拟地址应该都是当前进程的. 至于总线地址和系统地址的关系我也不大明白,请XD们指教. |
|
板凳#
发布于:2007-08-03 17:30
调用的应该是 CreateStaticMapping(),创建用于内核使用的 静态地址。
|
|