我是P/调用NTQueryInformationProcess来获取进程父进程的id,并且我希望得到一个“可读的”错误作为回报,所以我从返回值中得到了NtStatus枚举.但我不明白为什么:
0x00000000 STATUS_SUCCESS
是否(平等?)到0x00000000 STATUS_WAIT_0?
首先,我认为这在这个特定的枚举中是个问题,但它与msdn文档匹配。
我该怎么区分呢?两者是一样的?(可能是个愚蠢的问题,但我看不出有什么区别。)我如何从成功到Wait_0在.net,以便我可以判断我的电话成功?
我应该无视STATUS_WAIT_0吗?
发布于 2014-12-05 13:08:20
你不能区分他们。等待函数返回STATUS_WAIT_0、STATUS_WAIT_1等,直至STATUS_WAIT_63。这些状态代码的值为0,1,等等,最多可达63。
因此,如果代码位于STATUS_WAIT_0到STATUS_WAIT_63包含的范围内,则可以标识使用表达式StatusCode - STATUS_WAIT_0发出信号的等待对象的索引。
返回这些状态代码的等待函数未记录为返回STATUS_SUCCESS。当它们成功时,它们将被记录为返回一个STATUS_WAIT_N代码。因此,在检查用于返回一个STATUS_SUCCESS代码的等待函数的返回值时,您根本不需要测试STATUS_WAIT_N。当然,为本机API函数找到文档是另一回事,但这是另一回事。
在这种情况下,您调用的函数不是等待函数。如果成功,它将返回STATUS_SUCCESS。
https://stackoverflow.com/questions/27316483
复制相似问题