繁体   English   中英

STATUS_PENDING是什么意思?

[英]what does STATUS_PENDING mean?

我没有得到有关的概念NT进程,因为我使用他们正在返回像值的本地APIs.Since STATUS_TIMEOUTSTATUS_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM