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.
Obtém a região de memória do arquivo mapeado e o tipo de mapeamento.
Syntax
HRESULT GetFileMapping (
[out] const void **ppvData,
[out] ULONGLONG *pcbData,
[out] DWORD *pdwMappingType
);
Parameters
ppvData [out] Um ponteiro para o início do arquivo mapeado.
pcbData [out] O tamanho da região mapeada. Se pdwMappingType for fmFlat, esse é o tamanho do arquivo.
pdwMappingType [out] Um valor CorFileMapping que indica o tipo de mapeamento. A implementação atual do CLR (Common Language Runtime) sempre retorna fmFlat. Outros valores são reservados para uso futuro. No entanto, você sempre deve verificar o valor retornado, pois outros valores podem estar habilitados em versões futuras ou versões de serviço.
Return Value
| HRESULT | Description |
|---|---|
S_OK |
Todas as saídas são preenchidas. |
E_INVALIDARG |
NULL 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 ocorrer pelos seguintes motivos: - O escopo dos metadados foi aberto com o sinalizador ou o ofWrite sinalizador ofCopyMemory .- O escopo dos metadados foi aberto sem o ofReadOnly sinalizador.- O método IMetaDataDispenser::OpenScopeOnMemory foi usado para abrir apenas a parte de metadados do arquivo. - O arquivo não é um arquivo PE (executável portátil). Nota: Essas condições dependem da implementação do CLR e provavelmente serão enfraquecidas em versões futuras do CLR. |
Remarks
A memória a que aponta é válida apenas desde que ppvData o escopo de metadados subjacente esteja aberto.
Para que esse método funcione, ao mapear os metadados de um arquivo em disco na memória chamando o método IMetaDataDispenser::OpenScope, você deve especificar o ofReadOnly sinalizador e não deve especificar o ofWrite sinalizador.ofCopyMemory
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 fmFlatpdwMappingType, mas isso pode mudar em versões futuras do CLR ou em versões de serviço futuras de uma determinada versão. Você sempre deve verificar o valor pdwMappingTyperetornado, pois diferentes tipos terão layouts e deslocamentos diferentes.
Não há suporte para passar NULL para qualquer um dos três parâmetros. O método retorna E_INVALIDARGe nenhuma das saídas é preenchida. Ignorar o tipo de mapeamento ou o tamanho da região pode resultar em encerramento anormal do programa.
Requirements
Plataformas: Consulte sistemas operacionais com suporte do .NET.
Header: Cor.h
Library: CorGuids.lib
Versões do .NET: Disponível desde o .NET Framework 4.0