Compartir a través de


IMetaDataInfo::GetFileMapping (Método)

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

Sintaxis

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 un uso futuro. Sin embargo, siempre debe comprobar el valor devuelto, ya que otros valores pueden estar habilitados en versiones futuras o versiones de servicio.

Valor devuelto

HRESULT Descripción
S_OK Se rellenan todas las salidas.
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 memoria. Esto puede deberse a los siguientes motivos:

- El ámbito de metadatos se abrió con la marca ofWrite o ofCopyMemory.
- El ámbito de metadatos se abrió sin la marca ofReadOnly.
- El método IMetaDataDispenser::OpenScopeOnMemory se usó para abrir solo la parte de metadatos del archivo.
- El archivo no tiene formato de archivo ejecutable portable (PE). Nota: Estas condiciones dependen de la implementación de CLR y es probable que se debiliten en versiones futuras de CLR.

Comentarios

La memoria a la que ppvData apunta es válida siempre y cuando el ámbito de metadatos subyacente esté abierto.

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

La elección del tipo de asignación de archivos para cada ámbito es específica de una implementación determinada de CLR. El usuario no puede establecerlo. La implementación actual de CLR siempre devuelve fmFlat en pdwMappingType, pero esto puede cambiar en versiones futuras de CLR o en versiones futuras de servicio de una versión determinada. Siempre debe comprobar el valor devuelto de pdwMappingType, ya que distintos tipos tendrán diseños y desplazamientos diferentes.

No se admite pasar NULL a ninguno de los tres parámetros. El método devuelve E_INVALIDARG y ninguna de las salidas se rellena. Omitir el tipo de asignación o el tamaño de la región puede dar lugar a la finalización anómala del programa.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: Cor.h

Biblioteca: se usa como recurso en la biblioteca MsCorEE.dll

Versiones de .NET Framework: está disponible desde la versión 4

Consulte también