[英]what does STATUS_PENDING mean?
我没有得到有关的概念NT进程,因为我使用他们正在返回像值的本地APIs.Since STATUS_TIMEOUT
, STATUS_PENDING
etc.What并STATUS_PENDING
究竟意味着什么?
我的代码是这样的。
NTSTATUS rc;
rc = NtReadFile(
Keybrds[iLoop].hKeyboard,
Keybrds[iLoop].hEvent,
NULL,
NULL,
&IoStatusBlock,
&KbData,
sizeof(KEYBOARD_INPUT_DATA),
&ByteOffset,
NULL
);
在这里, NtReadFile()
返回STATUS_PENDING
,这意味着什么?
这意味着 I / O操作正在挂起,您应该等待该句柄完成。 这也可能意味着文件句柄以异步模式打开。 如果要同步,则应以同步模式打开句柄,而不要首先避免使用STATUS_PENDING
。
NtReadFile
[和ZwReadFile
]是同一Windows Native System Services例程的两个版本。 根据文档
返回值
ZwReadFile返回STATUS_SUCCESS或相应的NTSTATUS错误代码。
是的, STATUS_PENDING
是返回错误代码。 它记录为
0x00000103 STATUS_PENDING所请求的操作正在等待完成。
此消息表明某些使用相同句柄的I / O操作已经挂起。 该句柄可能以异步模式打开,因此,通过具有STATUS_PENDING
的返回值,调用方将等待该句柄上正在进行的操作的完成。
如果在异步模式下打开了文件句柄,则NtReadFile ()
不会在句柄上等待自身。 OTOH,对于具有同步模式的句柄, NtReadFile ()
将等待[ 块 ]直到读取操作完成。
现在,关于NTSTATUS error code
部分的详细信息,您可以在这里查看 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.