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