Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows 7 x32上的几个Nt函数返回状态\u等待\u 0_C++_C_Windows_Winapi - Fatal编程技术网

C++ Windows 7 x32上的几个Nt函数返回状态\u等待\u 0

C++ Windows 7 x32上的几个Nt函数返回状态\u等待\u 0,c++,c,windows,winapi,C++,C,Windows,Winapi,我从微软网站下载了一个Windows7X32Enterprise(IE11)hyper-v映像,以测试一个研究项目 出于某种原因,我调用的所有Ntdll函数(syscall)都返回状态\u WAIT\u 0。我指的是我测试过的所有版本,包括RtlGetVersion、NtAllocateVirtualMemory、NtCreateFile等等 这可能是因为它是一个虚拟机吗?或者可能是因为我直接进行系统调用 请告知,我已经在非虚拟机(包括最新的Windows 10)下测试了我的项目,它运行良好,所

我从微软网站下载了一个Windows7X32Enterprise(IE11)hyper-v映像,以测试一个研究项目

出于某种原因,我调用的所有Ntdll函数(syscall)都返回状态\u WAIT\u 0。我指的是我测试过的所有版本,包括RtlGetVersion、NtAllocateVirtualMemory、NtCreateFile等等

这可能是因为它是一个虚拟机吗?或者可能是因为我直接进行系统调用

请告知,我已经在非虚拟机(包括最新的Windows 10)下测试了我的项目,它运行良好,所以我怀疑它是我的代码

更新:


STATUS\u WAIT\u 0可以被视为STATUS\u SUCCESS,因为它的值都是0。

Ntdll函数基本上返回一个
NTSTATUS
,如、、等

以下文档包含
NTSTATUS
值的常见用法详细信息

返回值/代码:

0x00000000

STATUS\u SUCCESS
/
STATUS\u WAIT\u 0

说明:

操作已成功完成


调用者为WaitType指定了WaitAny,并且对象数组中的一个dispatcher对象已设置为信号状态。

状态\u等待\u 0==0==STATUS\u成功
@RbMm是这样定义的,但为什么?在某些操作系统上返回状态\u SUCCESS和状态\u WAIT\u 0毫无意义…奇怪的问题。OS返回二进制值-0。0是0。到处都是<代码>状态\u成功或
状态\u等待\u 0
的say
S\u OK
NOERROR
false
-所有这些都只是对0的解释。@RbMm OK我理解,当然0是0。我只是不明白为什么在这个特定的操作系统上状态描述是status\u WAIT\u 0。老实说,我认为这是因为我直接进行系统调用。谢谢老实说,你还是不明白。api调用不返回字符串。它返回0。谁以及如何将0转换为字符串?这当然不是特定于操作系统的,也不是因为你直接进行系统调用。嗨,@Norbert Boros,如果这个答案对你有帮助,请随时为有相同问题的人标记它。