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:
Nota
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