Método IMetaDataInfo::GetFileMappingIMetaDataInfo::GetFileMapping Method

Obtém a região de memória do arquivo mapeado e o tipo de mapeamento.Gets the memory region of the mapped file, and the type of mapping.

SintaxeSyntax

HRESULT GetFileMapping (  
    [out] const void           **ppvData,
    [out] ULONGLONG            *pcbData,
    [out] DWORD                *pdwMappingType  
);  

ParâmetrosParameters

ppvData
fora Um ponteiro para o início do arquivo mapeado.[out] A pointer to the start of the mapped file.

pcbData
fora O tamanho da região mapeada.[out] The size of the mapped region. Se pdwMappingType for fmFlat , esse é o tamanho do arquivo.If pdwMappingType is fmFlat, this is the size of the file.

pdwMappingType
fora Um valor CorFileMapping que indica o tipo de mapeamento.[out] A CorFileMapping value that indicates the type of mapping. A implementação atual do Common Language Runtime (CLR) sempre retorna fmFlat .The current implementation of the common language runtime (CLR) always returns fmFlat. Outros valores são reservados para uso futuro.Other values are reserved for future use. No entanto, você sempre deve verificar o valor retornado, pois outros valores podem ser habilitados em versões futuras ou versões de serviço.However, you should always verify the returned value, because other values may be enabled in future versions or service releases.

Valor retornadoReturn Value

HRESULTHRESULT DescriçãoDescription
S_OK Todas as saídas são preenchidas.All outputs are filled.
E_INVALIDARG NULL foi passado como um valor de argumento.NULL was passed as an argument value.
COR_E_NOTSUPPORTED A implementação do CLR não pode fornecer informações sobre a região da memória.The CLR implementation cannot provide information about the memory region. Isso pode ocorrer pelos seguintes motivos:This can happen for the following reasons:

-O escopo de metadados foi aberto com ofWrite o ofCopyMemory sinalizador ou.- The metadata scope was opened with the ofWrite or ofCopyMemory flag.
-O escopo de metadados foi aberto sem o ofReadOnly sinalizador.- The metadata scope was opened without the ofReadOnly flag.
-O método IMetaDataDispenser:: OpenScopeOnMemory foi usado para abrir apenas a parte de metadados do arquivo.- The IMetaDataDispenser::OpenScopeOnMemory method was used to open only the metadata portion of the file.
-O arquivo não é um arquivo executável portátil (PE).- The file is not a portable executable (PE) file. Observação: Essas condições dependem da implementação do CLR e provavelmente serão diminuídas em versões futuras do CLR.Note: These conditions depend on the CLR implementation, and are likely to be weakened in future versions of the CLR.

ComentáriosRemarks

A memória que ppvData aponta para é válida somente contanto que o escopo de metadados subjacente esteja aberto.The memory that ppvData points to is valid only as long as the underlying metadata scope is open.

Para que esse método funcione, ao mapear os metadados de um arquivo em disco para a memória chamando o método IMetaDataDispenser:: OpenScope , você deve especificar o ofReadOnly sinalizador e não deve especificar o ofWrite ofCopyMemory sinalizador ou.In order for this method to work, when you map the metadata of an on-disk file into memory by calling the IMetaDataDispenser::OpenScope method, you must specify the ofReadOnly flag and you must not specify the ofWrite or ofCopyMemory flag.

A escolha do tipo de mapeamento de arquivo para cada escopo é específica para uma determinada implementação do CLR.The choice of file mapping type for each scope is specific to a given implementation of the CLR. Ele não pode ser definido pelo usuário.It cannot be set by the user. A implementação atual do CLR sempre retorna fmFlat no pdwMappingType , mas isso pode ser alterado em versões futuras do CLR ou em futuras versões de serviço de determinada versão.The current implementation of the CLR always returns fmFlat in pdwMappingType, but this can change in future versions of the CLR or in future service releases of a given version. Você sempre deve verificar o valor retornado em pdwMappingType , pois tipos diferentes terão layouts e deslocamentos diferentes.You should always check the returned value in pdwMappingType, because different types will have different layouts and offsets.

Não há suporte para a passagem de NULL para qualquer um dos três parâmetros.Passing NULL for any of the three parameters is not supported. O método retorna E_INVALIDARG e nenhuma das saídas é preenchida.The method returns E_INVALIDARG, and none of the outputs are filled. Ignorar o tipo de mapeamento ou o tamanho da região pode resultar em um encerramento anormal do programa.Ignoring the mapping type or the size of the region can result in abnormal program termination.

RequisitosRequirements

Plataformas: confira Requisitos do sistema.Platforms: See System Requirements.

Cabeçalho: Cor. hHeader: Cor.h

Biblioteca: Usado como um recurso no MsCorEE.dllLibrary: Used as a resource in MsCorEE.dll

.NET Framework versões:Disponível desde o 4Available since 4.NET Framework Versions: Disponível desde o 4Available since 4

Consulte tambémSee also