Partager via


IMetaDataInfo::GetFileMapping Method

Obtient la région de mémoire du fichier mappé et le type de mappage.

Syntax

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

Parameters

ppvData [out] Pointeur vers le début du fichier mappé.

pcbData [out] Taille de la région mappée. Si pdwMappingType c’est fmFlatle cas, il s’agit de la taille du fichier.

pdwMappingType [out] Valeur CorFileMapping qui indique le type de mappage. L’implémentation actuelle du Common Language Runtime (CLR) retourne fmFlattoujours . D’autres valeurs sont réservées pour une utilisation ultérieure. Toutefois, vous devez toujours vérifier la valeur retournée, car d’autres valeurs peuvent être activées dans les versions ultérieures ou les versions de service.

Return Value

HRESULT Description
S_OK Toutes les sorties sont remplies.
E_INVALIDARG NULL a été passé en tant que valeur d’argument.
COR_E_NOTSUPPORTED L’implémentation du CLR ne peut pas fournir d’informations sur la région de mémoire. Ceci peut se produire pour les raisons suivantes :

- L’étendue des métadonnées a été ouverte avec l’indicateur ou ofCopyMemory l’indicateurofWrite.
- L’étendue des métadonnées a été ouverte sans l’indicateur ofReadOnly .
- La méthode IMetaDataDispenser ::OpenScopeOnMemory a été utilisée pour ouvrir uniquement la partie de métadonnées du fichier.
- Le fichier n’est pas un fichier exécutable portable (PE). Note: Ces conditions dépendent de l’implémentation du CLR et sont susceptibles d’être affaiblies dans les futures versions du CLR.

Remarks

Mémoire qui ppvData pointe vers est valide uniquement tant que l’étendue des métadonnées sous-jacente est ouverte.

Pour que cette méthode fonctionne, lorsque vous mappez les métadonnées d’un fichier sur disque en mémoire en appelant la méthode IMetaDataDispenser ::OpenScope, vous devez spécifier l’indicateur ofReadOnly et vous ne devez pas spécifier l’indicateur ou ofCopyMemory l’indicateurofWrite.

Le choix du type de mappage de fichiers pour chaque étendue est spécifique à une implémentation donnée du CLR. Il ne peut pas être défini par l’utilisateur. L’implémentation actuelle du CLR retourne fmFlat toujours dans pdwMappingType, mais cela peut changer dans les versions ultérieures du CLR ou dans les futures versions de service d’une version donnée. Vous devez toujours vérifier la valeur retournée dans pdwMappingType, car différents types auront des dispositions et des décalages différents.

La transmission de NULL pour l’un des trois paramètres n’est pas prise en charge. La méthode retourne E_INVALIDARG, et aucune des sorties n’est remplie. Ignorer le type de mappage ou la taille de la région peut entraîner un arrêt anormal du programme.

Requirements

Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.

Header: Cor.h

Library: CorGuids.lib

Versions de .NET : Disponible depuis .NET Framework 4.0

See also