Partager via


IMetaDataInfo::GetFileMapping, méthode

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

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

Paramètres

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

  • pcbData
    [out] Taille de la région mappée. Si pdwMappingType a la valeur fmFlat, 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 toujours fmFlat. D'autres valeurs sont réservées à un usage ultérieur. Toutefois, vous devez toujours vérifier la valeur retournée car d'autres valeurs peuvent être activées dans les versions ou Service Releases ultérieures.

Valeur de retour

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 de CLR ne peut pas fournir d'informations à propos de la région de mémoire. Cela peut arriver pour les raisons suivantes :

  • La portée des métadonnées a été ouverte avec l'indicateur ofWrite ou ofCopyMemory.

  • La portée 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).

RemarqueRemarque
Ces conditions dépendent de l'implémentation de CLR, et seront probablement affaiblies dans les futures versions du CLR.

Notes

La mémoire vers laquelle ppvData pointe est valide uniquement tant que la portée des métadonnées sous-jacentes est ouverte.

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

Le choix de type de mappage du fichier pour chaque portée 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 toujours fmFlat dans pdwMappingType, mais cela peut changer dans les futures versions du CLR ou dans les Service Releases ultérieures d'une version donnée. Vous devez toujours vérifier la valeur retournée dans pdwMappingType parce chaque type aura des dispositions et des décalages différents.

Le passage de NULL pour chacun des trois paramètres n'est pas pris en charge. La méthode retourne E_INVALIDARG, et aucune des sorties n'est remplie. Si vous ignorez le type de mappage ou la taille de la région, le programme peut se terminer de façon anormale.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : Cor.h

Bibliothèque : utilisée en tant que ressource dans MsCorEE.dll

Versions du .NET Framework : 4

Voir aussi

Autres ressources

IMetaDataInfo, interface

CorFileMapping, énumération