Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A macro MmGetMdlVirtualAddress retorna o endereço virtual base de um buffer descrito por um MDL.
Sintaxe
#define MmGetMdlVirtualAddress(Mdl) \
((PVOID) ((PCHAR) ((Mdl)->StartVa) + (Mdl)->ByteOffset))
Parâmetros
[in] Mdl
Ponteiro para um MDL que descreve o buffer para o qual retornar o endereço virtual inicial.
Valor de retorno
MmGetMdlVirtualAddress retorna o endereço virtual base do buffer descrito pelo MDL.
Observações
MmGetMdlVirtualAddress retorna o endereço virtual inicial do MDL.
MmGetMdlVirtualAddress retorna um endereço virtual que não é necessariamente válido no contexto de thread atual. Drivers de nível inferior não devem tentar usar o endereço virtual retornado para acessar a memória, especialmente o espaço de memória do usuário.
O endereço retornado, usado como um índice para uma entrada de endereço físico no MDL, pode ser inserido para MapTransfer.
Os chamadores de MmGetMdlVirtualAddress podem ser executados em qualquer IRQL. Normalmente, o chamador está em execução em IRQL = DISPATCH_LEVEL porque essa rotina geralmente é chamada para obter o parâmetro CurrentVa para MapTransfer.
Requisitos
| Requisito | Valor |
|---|---|
| de cliente com suporte mínimo | Windows 2000 |
| cabeçalho | wdm.h |
| IRQL | Qualquer nível (consulte Comentários) |
| regras de conformidade de DDI | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |