Поделиться через


Макрос MmGetMdlVirtualAddress (wdm.h)

Макрос MmGetMdlVirtualAddress возвращает базовый виртуальный адрес буфера, описываемого MDL.

Синтаксис

PVOID
MmGetMdlVirtualAddress (
    _In_ PMDL Mdl
    )

Параметры

[in] Mdl

Указатель на MDL, описывающий буфер, для которого возвращается исходный виртуальный адрес.

Возвращаемое значение

None

Remarks

MmGetMdlVirtualAddress возвращает начальный виртуальный адрес MDL.

MmGetMdlVirtualAddress возвращает виртуальный адрес, который не обязательно является допустимым в контексте текущего потока. Драйверы более низкого уровня не должны пытаться использовать возвращенный виртуальный адрес для доступа к памяти, особенно к пространству памяти пользователя.

Возвращаемый адрес, используемый в качестве индекса для записи физического адреса в MDL, может быть входным для MapTransfer.

Вызывающие компоненты MmGetMdlVirtualAddress могут выполняться в любом IRQL. Как правило, вызывающий объект выполняется в irQL = DISPATCH_LEVEL так как эта подпрограмма обычно вызывается для получения параметра CurrentVa в MapTransfer.

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Верхняя часть wdm.h
IRQL Любой уровень (см. примечания)
Правила соответствия DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)