c++ - 多个 Nt 函数在 Windows 7 x32 上返回 STATUS_WAIT_0

标签 c++ c windows winapi

我已从 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/

相关文章:

c - 在 C 中如何编写适合操作系统的行尾字符?

在 Windows 上创建线程数组

windows - 如何在 Windows 中使用 ssh 隧道

c++ - 在多字节字符集应用程序中的 MFC 窗体控件上设置 Unicode 文本

c++ - C/C++ 宏扩展 : from two to four parameters

javascript - 如何从 WebAssembly 模块中检测浏览器信息?

C 宏变量

c++ - 来自头文件/源文件的包含文件

C套接字编程: Trying to serve new client connections using fork()

c++ - 我可以强制程序每次都在内存中的同一位置启动吗?