次の方法で共有


MmGetMdlVirtualAddress マクロ (wdm.h)

MmGetMdlVirtualAddress は、MDL によって記述したバッファーのベース仮想アドレスを返すマクロです。

構文

PVOID
MmGetMdlVirtualAddress (
    _In_ PMDL Mdl
    )

パラメーター

[in] Mdl

初期仮想アドレスを返すバッファーを記述した MDL へのポインター。

戻り値

なし

解説

MmGetMdlVirtualAddress からは、MDL の開始仮想アドレスが返されます。

MmGetMdlVirtualAddress から返される仮想アドレスは、現在のスレッド コンテキストで必ずしも有効ではありません。 下位レベルのドライバーでは、返された仮想アドレスを使用してメモリにアクセスすること、特にユーザー メモリ領域にアクセスすることは、しないでください。

返されるアドレスは、MDL の物理アドレス エントリのインデックスとして使用され、MapTransfer に入力できます。

MmGetMdlVirtualAddress の呼び出し元は、どの IRQL で実行されていてもかまいません。 通常、呼び出し元は IRQL = DISPATCH_LEVEL で実行されます (このルーチンは、MapTransfer への CurrentVa パラメーターを取得するために通常呼び出されるため)。

要件

要件
サポートされている最小のクライアント Windows 2000
Header wdm.h
IRQL 任意のレベル (「備考」を参照)
DDI コンプライアンス規則 MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)