Método de IMetaDataInfo::GetFileMapping
Obtém a região de memória do arquivo mapeado e o tipo de mapeamento.
HRESULT GetFileMapping (
[out] const void **ppvData,
[out] ULONGLONG *pcbData,
[out] DWORD *pdwMappingType
);
Parâmetros
ppvData
[out] Um ponteiro para o início do arquivo mapeado.pcbData
[out] O tamanho da região mapeada. Se pdwMappingType é fmFlat, esse é o tamanho do arquivo.pdwMappingType
[out] A CorFileMapping valor que indica o tipo de mapeamento. A implementação atual do common language runtime (CLR) sempre retorna fmFlat. Outros valores são reservados para uso futuro. No entanto, você sempre deve verificar o valor retornado, porque os outros valores podem ser ativados em futuras versões ou versões de serviço.
Valor de retorno
HRESULT |
Descrição |
---|---|
S_OK |
Todas as saídas são preenchidas. |
E_INVALIDARG |
NULO foi passado como um valor de argumento. |
COR_E_NOTSUPPORTED |
A implementação do CLR não pode fornecer informações sobre a região de memória. Isso pode acontecer pelos seguintes motivos:
Observação Essas condições dependem da implementação do CLR e provavelmente ser diminuída em futuras versões do CLR. |
Comentários
A memória que ppvData pontos é válida somente como o escopo de metadados subjacente é aberta.
Para que esse método funcione, quando você mapeia os metadados de um arquivo em disco na memória, chamando o IMetaDataDispenser::OpenScope método, você deve especificar o ofReadOnly sinalizador e você não deve especificar o ofWrite ou ofCopyMemory sinalizador.
A escolha do tipo de mapeamento de arquivo para cada escopo é específica para uma determinada implementação do CLR. Ele não pode ser definido pelo usuário. A implementação atual do CLR sempre retorna fmFlat na pdwMappingType, mas isso pode mudar em futuras versões do CLR ou em futuras versões de serviço de uma determinada versão. Você sempre deve verificar o valor retornado pdwMappingType, pois terão diferentes tipos diferentes layouts e deslocamentos.
Não há suporte para passar NULL para qualquer um dos três parâmetros. O método retorna E_INVALIDARG, e nenhum das saídas são preenchidas. Ignorar o tipo de mapeamento ou o tamanho da região pode resultar na finalização anormal do programa.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Cor.h
Biblioteca: Usado como um recurso em mscoree
.NET Framework versões: 4