[英]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.