C28126

警告 C28126: ObReferenceObject* の AccessModeパラメータは IRP->RequestorModeである必要があります

ObReferenceObjectByHandle または ObReferenceObjectByPointer への呼び出しでは、ドライバーは Irp->RequestorMode を使用する代わりに、AccessModeパラメーターに UserMode または KernelMode を渡します。

ドライバーは、UserMode または KernelModeを指定するのではなく、Irp->RequestorModeを使用する必要があります。 これにより、カーネル モード IRP の送信者はカーネル モード ハンドルを安全に提供できるようになります。

この警告は、ドライバー スタックの最上位ドライバーを対象としています。 他のすべてのドライバーについては、この警告を無視または抑制できます。

ドライバースタックの最上位ドライバーは、UserMode または KernelModeを指定するのではなく、Irp->RequestorModeを使用する必要があります。 これにより、カーネル モード IRP の送信者はカーネル モード ハンドルを安全に提供できるようになります。 スタック内の他のすべてのドライバーは、アクセス チェックをスキップし、アクセス チェックの責任をトップレベルのドライバーに残す KernelModeを指定する必要があります。