Método IHostMemoryManager::VirtualQuery
Serve como um wrapper lógico para a função Win32 correspondente. A implementação de Win32 de VirtualQuery
recupera as informações sobre um intervalo de páginas no espaço de endereço virtual do processo de chamada.
Sintaxe
HRESULT VirtualQuery (
[in] void* lpAddress,
[out] void* lpBuffer,
[in] SIZE_T dwLength,
[out] SIZE_T* pResult
);
Parâmetros
lpAddress
[in] Um ponteiro para o endereço na memória virtual a ser consultado.
lpBuffer
[out] Um ponteiro para uma estrutura que contém informações sobre a região de memória especificada.
dwLength
[in] O tamanho, em bytes, do buffer que lpBuffer
aponta.
pResult
[out] Um ponteiro para o número de bytes retornado pelo buffer de informações.
Valor Retornado
HRESULT | Descrição |
---|---|
S_OK | VirtualQuery retornado com êxito. |
HOST_E_CLRNOTAVAILABLE | O CLR (Common Language Runtime) não foi carregado em um processo ou está em um estado no qual não pode executar o código gerenciado ou processar a chamada com sucesso. |
HOST_E_TIMEOUT | Uma chamada atingiu o tempo limite. |
HOST_E_NOT_OWNER | O chamador não possui o bloqueio. |
HOST_E_ABANDONED | Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele. |
E_FAIL | Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE. |
Comentários
VirtualQuery
fornece as informações sobre um intervalo de páginas no espaço de endereço virtual do processo de chamada. Essa implementação define o valor do parâmetro pResult
como o número de bytes retornados no buffer de informações e retorna um valor HRESULT. Na função VirtualQuery
do Win32, o valor retornado é o tamanho do buffer. Para obter mais informações, confira a documentação da plataforma Windows.
Importante
A implementação de VirtualQuery
do sistema operacional não incorre em deadlock e poderá executar até a conclusão com threads aleatórios suspensos no código do usuário. Tenha muito cuidado ao implementar uma versão hospedada desse método.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: incluída como um recurso no MSCorEE.dll
Versões do .NET Framework: disponíveis desde 2.0