CAtlFileMappingBase, classe
Cette classe représente un fichier mappé en mémoire.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.
Syntaxe
class CAtlFileMappingBase
Membres
Constructeurs publics
Nom | Description |
---|---|
CAtlFileMappingBase ::CAtlFileMappingBase | Constructeur . |
CAtlFileMappingBase ::~CAtlFileMappingBase | Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CAtlFileMappingBase ::CopyFrom | Appelez cette méthode pour copier à partir d’un objet de mappage de fichiers. |
CAtlFileMappingBase ::GetData | Appelez cette méthode pour obtenir les données à partir d’un objet de mappage de fichiers. |
CAtlFileMappingBase ::GetHandle | Appelez cette méthode pour retourner le handle de fichier. |
CAtlFileMappingBase ::GetMappingSize | Appelez cette méthode pour obtenir la taille de mappage à partir d’un objet de mappage de fichiers. |
CAtlFileMappingBase ::MapFile | Appelez cette méthode pour créer un objet de mappage de fichiers. |
CAtlFileMappingBase ::MapSharedMem | Appelez cette méthode pour créer un objet de mappage de fichiers qui permet un accès total à tous les processus. |
CAtlFileMappingBase ::OpenMapping | Appelez cette méthode pour retourner un handle à l’objet de mappage de fichiers. |
CAtlFileMappingBase ::Unmap | Appelez cette méthode pour annuler le mappage d’un objet de mappage de fichiers. |
Opérateurs publics
Nom | Description |
---|---|
CAtlFileMappingBase ::operator = | Définit l’objet de mappage de fichiers actuel sur un autre objet de mappage de fichiers. |
Notes
Le mappage de fichiers est l’association du contenu d’un fichier à une partie de l’espace d’adressage virtuel d’un processus. Cette classe fournit des méthodes pour créer des objets de mappage de fichiers qui permettent aux programmes d’accéder et de partager facilement des données.
Pour plus d’informations, consultez Mappage de fichiers dans le Kit de développement logiciel (SDK) Windows.
Spécifications
En-tête : atlfile.h
CAtlFileMappingBase ::CAtlFileMappingBase
Constructeur .
CAtlFileMappingBase(CAtlFileMappingBase& orig);
CAtlFileMappingBase() throw();
Paramètres
Bail
Objet de mappage de fichiers d’origine à copier pour créer l’objet.
Notes
Crée un objet de mappage de fichiers, éventuellement à l’aide d’un objet existant. Il est toujours nécessaire d’appeler CAtlFileMappingBase ::MapFile pour ouvrir ou créer l’objet de mappage de fichiers pour un fichier particulier.
Exemple
int OpenMyFileMap()
{
// Create the file-mapping object.
CAtlFileMappingBase myFileMap;
// Create a file.
CAtlFile myFile;
myFile.Create(_T("myMapTestFile"),
GENERIC_READ|GENERIC_WRITE|STANDARD_RIGHTS_ALL,
FILE_SHARE_READ|FILE_SHARE_WRITE,
OPEN_ALWAYS);
// The file handle.
HANDLE hFile = (HANDLE)myFile;
// Test the file has opened successfully.
ATLASSERT(hFile != INVALID_HANDLE_VALUE);
// Open the file for file-mapping.
// Must give a size as the file is zero by default.
if (myFileMap.MapFile(hFile,
1024,
0,
PAGE_READWRITE,
FILE_MAP_READ) != S_OK)
{
CloseHandle(hFile);
return 0;
}
// Confirm the size of the mapping file.
ATLASSERT(myFileMap.GetMappingSize() == 1024);
// Now the file-mapping object is open, a second
// process could access the filemap object to exchange
// data.
return 0;
}
CAtlFileMappingBase ::~CAtlFileMappingBase
Destructeur.
~CAtlFileMappingBase() throw();
Notes
Libère toutes les ressources allouées par la classe et appelle la méthode CAtlFileMappingBase ::Unmap .
CAtlFileMappingBase ::CopyFrom
Appelez cette méthode pour copier à partir d’un objet de mappage de fichiers.
HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();
Paramètres
Bail
Objet de mappage de fichiers d’origine à partir duquel copier.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CAtlFileMappingBase ::GetData
Appelez cette méthode pour obtenir les données à partir d’un objet de mappage de fichiers.
void* GetData() const throw();
Valeur de retour
Retourne un pointeur vers les données.
CAtlFileMappingBase ::GetHandle
Appelez cette méthode pour retourner un handle à l’objet de mappage de fichiers.
HANDLE GetHandle() throw ();
Valeur de retour
Retourne un handle à l’objet de mappage de fichiers.
CAtlFileMappingBase ::GetMappingSize
Appelez cette méthode pour obtenir la taille de mappage à partir d’un objet de mappage de fichiers.
SIZE_T GetMappingSize() throw();
Valeur de retour
Retourne la taille de mappage.
Exemple
Consultez l’exemple de CAtlFileMappingBase ::CAtlFileMappingBase.
CAtlFileMappingBase ::MapFile
Appelez cette méthode pour ouvrir ou créer un objet de mappage de fichiers pour le fichier spécifié.
HRESULT MapFile(
HANDLE hFile,
SIZE_T nMappingSize = 0,
ULONGLONG nOffset = 0,
DWORD dwMappingProtection = PAGE_READONLY,
DWORD dwViewDesiredAccess = FILE_MAP_READ) throw();
Paramètres
hFile
Gérez le fichier à partir duquel créer un objet de mappage. hFile doit être valide et ne peut pas être défini sur INVALID_HANDLE_VALUE.
nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle du fichier identifié par hFile.
nOffset
Décalage de fichier où le mappage doit commencer. La valeur de décalage doit être un multiple de la granularité d’allocation de mémoire du système.
dwMappingProtection
Protection souhaitée pour la vue de fichier lorsque le fichier est mappé. Consultez flProtect dans CreateFileMapping dans le Kit de développement logiciel (SDK) Windows.
dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Une fois qu’un objet de mappage de fichiers a été créé, la taille du fichier ne doit pas dépasser la taille de l’objet de mappage de fichiers ; si c’est le cas, le contenu du fichier n’est pas disponible pour le partage. Pour plus d’informations, consultez CreateFileMapping et MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.
Exemple
Consultez l’exemple de CAtlFileMappingBase ::CAtlFileMappingBase.
CAtlFileMappingBase ::MapSharedMem
Appelez cette méthode pour créer un objet de mappage de fichiers qui permet un accès total à tous les processus.
HRESULT MapSharedMem(
SIZE_T nMappingSize,
LPCTSTR szName,
BOOL* pbAlreadyExisted = NULL,
LPSECURITY_ATTRIBUTES lpsa = NULL,
DWORD dwMappingProtection = PAGE_READWRITE,
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();
Paramètres
nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle de l’objet de mappage de fichiers identifié par szName.
szName
Nom de l’objet de mappage.
pbAlreadyExisted
Pointe vers une valeur BOOL définie sur TRUE si l’objet de mappage existait déjà.
lpsa
Pointeur vers une SECURITY_ATTRIBUTES
structure qui détermine si le handle retourné peut être hérité par les processus enfants. Consultez lpAttributes dans CreateFileMapping dans le Kit de développement logiciel (SDK) Windows.
dwMappingProtection
Protection souhaitée pour la vue de fichier, lorsque le fichier est mappé. Consultez flProtect dans CreateFileMapping
le Kit de développement logiciel (SDK) Windows.
dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
MapShareMem
permet à un objet de mappage de fichiers existant, créé par CreateFileMapping, d’être partagé entre les processus.
CAtlFileMappingBase ::OpenMapping
Appelez cette méthode pour ouvrir un objet de mappage de fichiers nommé pour le fichier spécifié.
HRESULT OpenMapping(
LPCTSTR szName,
SIZE_T nMappingSize,
ULONGLONG nOffset = 0,
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();
Paramètres
szName
Nom de l’objet de mappage. S’il existe un handle ouvert pour un objet de mappage de fichiers par ce nom et que le descripteur de sécurité sur l’objet de mappage n’est pas en conflit avec le paramètre dwViewDesiredAccess , l’opération d’ouverture réussit.
nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle de l’objet de mappage de fichiers identifié par szName.
nOffset
Décalage de fichier où le mappage doit commencer. La valeur de décalage doit être un multiple de la granularité d’allocation de mémoire du système.
dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Dans les builds de débogage, une erreur d’assertion se produit si les paramètres d’entrée ne sont pas valides.
CAtlFileMappingBase ::operator =
Définit l’objet de mappage de fichiers actuel sur un autre objet de mappage de fichiers.
CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);
Paramètres
Bail
Objet de mappage de fichiers actuel.
Valeur de retour
Retourne une référence à l'objet actif.
CAtlFileMappingBase ::Unmap
Appelez cette méthode pour annuler le mappage d’un objet de mappage de fichiers.
HRESULT Unmap() throw();
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Pour plus d’informations, consultez UnmapViewOfFile dans le Kit de développement logiciel (SDK) Windows.