MmGetMdlVirtualAddress マクロ (wdm.h)

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

構文

#define MmGetMdlVirtualAddress(Mdl) \
    ((PVOID) ((PCHAR) ((Mdl)->StartVa) + (Mdl)->ByteOffset))

パラメーター

[in] Mdl

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

戻り値

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

備考

mmGetMdlVirtualAddress は、MDL の開始仮想アドレスを返します。

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

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

MmGetMdlVirtualAddress の呼び出し元は、任意の IRQL で実行できます。 通常、呼び出し元は IRQL = DISPATCH_LEVEL で実行されています。このルーチンは、MapTransfer するために CurrentVa パラメーターを取得するために一般的に呼び出されるためです。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000
ヘッダー wdm.h
IRQL 任意のレベル (「解説」を参照)
DDI コンプライアンス規則 する MdlAfterReqCompletedIntIoctlA(kmdf)MdlAfterReqCompletedIoctlA(kmdf)MdlAfterReqCompletedReadA(kmdf)MdlAfterReqCompletedWriteA(kmdf)