Condividi tramite


Macro MmGetMdlVirtualAddress (wdm.h)

La macro MmGetMdlVirtualAddress restituisce l'indirizzo virtuale di base di un buffer descritto da un MDL.

Sintassi

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

Parametri

[in] Mdl

Puntatore a un MDL che descrive il buffer per il quale restituire l'indirizzo virtuale iniziale.

Valore restituito

MmGetMdlVirtualAddress restituisce l'indirizzo virtuale di base del buffer descritto dal linguaggio MDL.

Osservazioni:

MmGetMdlVirtualAddress restituisce l'indirizzo virtuale iniziale del file MDL.

MmGetMdlVirtualAddress restituisce un indirizzo virtuale non necessariamente valido nel contesto del thread corrente. I driver di livello inferiore non devono tentare di usare l'indirizzo virtuale restituito per accedere alla memoria, in particolare lo spazio di memoria utente.

L'indirizzo restituito, usato come indice per una voce di indirizzo fisico nel linguaggio MDL, può essere input per MapTransfer.

I chiamanti di MmGetMdlVirtualAddress possono essere eseguiti in qualsiasi IRQL. In genere, il chiamante è in esecuzione in IRQL = DISPATCH_LEVEL perché questa routine viene comunemente chiamata per ottenere il parametro CurrentVa in MapTransfer.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Intestazione wdm.h
IRQL Qualsiasi livello (vedere la sezione Osservazioni)
regole di conformità DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)