Windowsでのキー入力の仕組みについて
WindowsアプリケーションをC++で開発しています。
キーイベントを取得するには、まずはWM_KEYDOWNを取得。
もっと早く知りたい場合は、グローバルフック。
さらに早く知りたい場合は、KeyboardFilterDriverを開発...
このようにしてWindowsのキー入力について深堀してきたのですが、ハードからのキー入力をどのようにソフトで処理しているのか、一連の流れがつかめません。
ハードからカーネル、ドライバ、ユーザーランド、ユーザーアプリケーション....といったキー入力の一連の流れを詳しく教えてはいただけないでしょうか。
目的は、ユーザーランド側(システムではない方)でいち早くキー入力を取得したいのです。
ドライバ開発からすればシステムの一部としてキー入力を取得できるかもしれませんが、それではアプリケーションを利用できる層は限られています。(管理者でないといけない)
なので、キー入力の仕組みをきちんと理解して、キー入力を取得できるようにしたいのです。
よろしくお願いします。