2

Windows では、カーネル ドライバーは、仮想アドレス範囲をバックアップするためにメモリを固定するなどの操作を実行できます ( MMProbeandLockPages)。しかし、仮想アドレスが特定のプロセスに対して有効であることを実際に検証する方法を見つけることができませんでした。つまり、カーネル ドライバーが特定の仮想ページが特定のプロセスのページ テーブルに含まれているかどうかを確認する方法はありますか?

4

1 に答える 1

0

ドライバーがプロセスのコンテキストで実行されていない場合は、最初に KeStackAttachProcess を呼び出す必要があります。

次に、try / except ブロック内で ProbeForRead または ProbForWrite を実行できます。たとえば、WinDDK サンプルの src\general\ioctl\wdm\sys\sioctl.c にある IOCTL_SIOCTL_METHOD_NEITHER の処理を​​参照してください。

于 2012-04-25T21:26:44.067 に答える