簡體   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