1

DRIVER_OBJECT の 2 つのインスタンスを取得します。レジストリから取得したドライバー名に対して ObReferenceObjectByName() を使用して、1 つの DRIVER_OBJECT を取得します。2 番目は DEVICE_OBJECT 構造体から取得します。レジストリから読み取ったドライバーがそのデバイスにロードされたものと同じかどうかを理解するために、2 つの DRIVER_OBJECT が等しいかどうかを確認したいと思います。

4

2 に答える 2

-1

さて、共有したい非常に簡単でエレガントなソリューションに出会いました。DRIVER_OBJECT へのポインター (つまり、DRIVER_OBJECT のアドレス) は 16 進数です。また、1 つのドライバーに対して DRIVER_OBJECT が 1 つしかないため、このアドレス (16 進数) を比較して等しいかどうかを判断すると、うまくいきます。

PDRIVER_OBJECT a;
PDRIVER_OBJECT b;
/* get the values of a and b
...
...
*/
if (a == b)
{
// they point to the same DRIVER_OBJECT.
}
于 2013-08-19T06:05:16.493 に答える