Compartir a través de


IMetaDataInfo::GetFileMapping (Método)

Obtiene la región de la memoria del archivo asignado y el tipo de asignación.

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

Parámetros

  • ppvData
    [out] Un puntero al inicio del archivo asignado.

  • pcbData
    [out] El tamaño de la región asignada. Si pdwMappingType es fmFlat, este es el tamaño del archivo.

  • pdwMappingType
    [out] Un valor CorFileMapping que indica el tipo de asignación. La implementación actual de Common Language Runtime (CLR) siempre devuelve fmFlat. Otros valores se reservan para su uso futuro. Sin embargo, siempre debería comprobar el valor devuelto, porque otros valores pueden estar habilitados en versiones futuras o actualizaciones Service Release.

Valor devuelto

HRESULT

Descripción

S_OK

Se rellenan todos los resultados.

E_INVALIDARG

NULL se pasó como un valor de argumento.

COR_E_NOTSUPPORTED

La implementación de CLR no puede proporcionar información sobre la región de la memoria. Esto puede pasar por las siguientes razones:

  • El ámbito de metadatos se abrió con la marca ofWrite u ofCopyMemory.

  • El ámbito de metadatos se abrió sin la marca ofReadOnly o .

  • El método IMetaDataDispenser::OpenScopeOnMemory fue utilizado para abrir solo la parte de metadatos del archivo.

  • El archivo no es un archivo ejecutable portable (PE).

NotaNota
Estas condiciones dependen de la implementación de CLR, y probablemente se van a debilitar en versiones futuras de CLR.

Comentarios

La memoria a la que apunta ppvData solo es válida si el ámbito del metadatos subyacente está abierto.

Para que este método funcione, al asignar los metadatos de un archivo en disco en la memoria llamando al método IMetaDataDispenser::OpenScope, debe especificar la marca ofReadOnly y no debe especificar la marca ofWrite ni ofCopyMemory.

La opción del tipo de asignación de archivos para cada ámbito es específica de una implementación determinada del CLR. El usuario no lo puede establecer. La implementación actual de CLR siempre devuelve fmFlat en pdwMappingType, pero esto puede cambiar en versiones futuras de CLR o en actualizaciones Service Release de una versión determinada. Siempre debería comprobar el valor devuelto en pdwMappingType, porque tipos diferentes tendrán diseños y desplazamientos diferentes.

No se admite pasar NULL para cualquiera de los tres parámetros. El método devuelve E_INVALIDARG, y no se rellena ninguno de los resultados. Omitir el tipo de asignación o el tamaño de la región puede producir la finalización anormal del programa.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: Cor.h

Biblioteca: Se usa como recurso en MsCorEE.dll

Versiones de .NET Framework: 4

Vea también

Otros recursos

IMetaDataInfo (Interfaz)

CorFileMapping (Enumeración)