【发布时间】:2011-02-08 07:02:02
【问题描述】:
在使用GetModuleFileNameEx查询正在运行的进程的镜像路径时,有些进程的镜像路径以“\??\”开头。例如,虽然大多数进程启动“C:\WINDOWS”,但有些进程启动“\??\C:\WINDOWS”。
Windows 路径上的前导 \??\ 是什么意思?
【问题讨论】:
在使用GetModuleFileNameEx查询正在运行的进程的镜像路径时,有些进程的镜像路径以“\??\”开头。例如,虽然大多数进程启动“C:\WINDOWS”,但有些进程启动“\??\C:\WINDOWS”。
Windows 路径上的前导 \??\ 是什么意思?
【问题讨论】:
这是一个 Unicode 扩展长度路径名 - 请参阅 MSDN 中的 Naming Files, Paths, and Namespaces(“最大路径长度限制”部分)。
(顺便问一下,你是说\\?\而不是\??\?)
【讨论】:
盘符前2个问号,即\??\c: 表示运行在内核模式。 (在 PICK 或多值操作系统中,我们将此级别称为“监控模式”,其中指令可以直接寻址内存或执行磁盘 IO。)内核模式在这篇文章中得到了更好的解释: What do "\\.\", "\??\", "\\?\", "\\" mean? 由 symbolhound dot com 所指向的
另一种说法;用户模式用尽了用户/窗口的工作空间,而内核模式使用每个人都共有的内存空间,这意味着您可能会停止机器而不是仅中止一个 Windows 窗口/选项卡。
我留给你搜索(引擎)内核模式
【讨论】: