3

私が理解していることから、ユーザー モードで実行されるスレッドは、最終的にカーネル モードに切り替わるコードに入ることができます (sysenter を使用)。しかし、ユーザー コードから生成されたスレッドは、どのようにしてカーネル コードを実行できるのでしょうか?

例: 私は CreateFile() を呼び出しています。次に、NtCreateFile() に委譲します。NtCreateFile() は、ZiFastSystemCall() よりも ZwCreateFile() を呼び出します... sysenter よりも...利益、カーネル アクセス?

編集 この質問: Windows がカーネル モードへの移行を保護する方法には、理解に役立つ回答があります。引用を参照してください。カーネル/リング 0 スレッドに送信すると、ユーザー モード スレッドのコンテキスト (コール スタックやレジスタなど) を調べて、何をすべきかを判断できます。" 非常に有益なこのブログ投稿も参照してください: http://duartes.org/gustavo/blog/post/cpu-rings-privilege-and-protection

4

1 に答える 1