1

ネイティブ API を使用しているため、NT プロセスに関する概念がSTATUS_TIMEOUTわかりSTATUS_PENDINGませ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ていますが、それはどういう意味ですか?

4

2 に答える 2

6

これ、I/O 操作が保留中であり、ハンドルが完了するまで待機する必要があることを意味します。また、おそらくファイル ハンドルが非同期モードで開かれていることも意味します。同期が必要な場合はSTATUS_PENDING、最初から回避する代わりに、同期モードでハンドルを開く必要があります。

于 2015-01-06T06:47:58.380 に答える