Expand Minimize

MmGetMdlVirtualAddress macro

The MmGetMdlVirtualAddress macro returns the base virtual address of a buffer described by an MDL.

Syntax


PVOID MmGetMdlVirtualAddress(
  [in]  PMDL Mdl
);

Parameters

Mdl [in]

Pointer to an MDL that describes the buffer for which to return the initial virtual address.

Return value

MmGetMdlVirtualAddress returns the starting virtual address of the MDL.

Remarks

MmGetMdlVirtualAddress returns a virtual address that is not necessarily valid in the current thread context. Lower-level drivers should not attempt to use the returned virtual address to access memory, particularly user memory space.

The returned address, used as an index to a physical address entry in the MDL, can be input to MapTransfer.

Callers of MmGetMdlVirtualAddress can be running at any IRQL. Usually, the caller is running at IRQL = DISPATCH_LEVEL because this routine is commonly called to obtain the CurrentVa parameter to MapTransfer.

Requirements

Version

Available in Windows 2000 and later versions of Windows.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

IRQL

Any level (see Remarks section)

DDI compliance rules

MdlAfterReqCompletedIntIoctlA, MdlAfterReqCompletedIoctlA, MdlAfterReqCompletedReadA, MdlAfterReqCompletedWriteA

See also

MapTransfer
MmGetMdlByteOffset
MmIsAddressValid
MmIsNonPagedSystemAddressValid

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft