我已从 Microsoft 网站下载了 Windows 7 x32 Enterprise (IE11) hyper-v 镜像来测试研究项目。
出于某种原因,我调用(系统调用)的所有 Ntdll 函数都返回 STATUS_WAIT_0。我的意思是我测试过的所有这些,包括 RtlGetVersion、NtAllocateVirtualMemory、NtCreateFile 等等。
这可能是因为它是虚拟机吗?或者可能是因为我直接进行系统调用?
请告知,我已经在非虚拟机(包括最新的 Windows 10)下测试了我的项目,它运行良好,所以我怀疑这是我的代码。
更新:
STATUS_WAIT_0 可以被视为 STATUS_SUCCESS,因为它的值都是 0。
最佳答案
Ntdll 函数基本上返回一个 NTSTATUS
,例如 RtlGetVersion
, NtAllocateVirtualMemory
, NtCreateFile
等等。
以下文档包含 NTSTATUS
值的常见用法详细信息
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55
返回值/代码:
0x00000000
STATUS_SUCCESS
/STATUS_WAIT_0
描述:
操作成功完成。
调用方为 WaitType 指定了 WaitAny,并且 Object 数组中的调度程序对象之一已设置为有信号状态。
关于c++ - 多个 Nt 函数在 Windows 7 x32 上返回 STATUS_WAIT_0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59687801/