Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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) |