标准指针在.Net中能做到这一点吗?还是需要使用P/invoke?请注意,我不是在谈论对象引用;我在谈论的是在不安全代码中实际使用的C#指针。
Adam's answer的基础上,即使是Win32应用程序,没有内核驱动程序的合作,也无法执行内存映射I/O。Win32应用程序获得的所有地址都是虚拟地址,与物理地址无关。
要实现您所说的操作,您需要编写一个内核驱动程序,或安装一个具有API的驱动程序,该API将允许您针对特定物理地址发出I/O请求(这样的驱动程序可能会成为一个相当大的安全漏洞)。我记得很久以前,一些公司在开发工具包中提供了这样的驱动程序,以帮助移植传统的DOS / Win16或其他设备代码到Win32。我不记得它的名字,也不知道它是否还存在。