DosGetNamedSharedMem |
DOS : Demande la mémoire de partage nommé |
---|---|
DOSCALLS.DLL | os2.h |
Syntaxe
APIRET DosGetNamedSharedMem( PPVOID pBaseAddress, PSZ pszSharedMemName, ULONG ulAttributeFlags ); |
Paramètres
Nom | Description | ||
---|---|---|---|
pBaseAddress | Ce paramètre permet d'indiquer un pointeur vers une variable allant recevoir l'adresse de base d'espace d'allocation de mémoire. | ||
pszSharedMemName | Ce paramètre optionnel permet d'indiquer une chaîne de caractères du nom associé avec le bloc de mémoire partagé. Le nom doit être d'un format de nom de fichier OS/2 et d'une chaîne de caractères ASCIZ ordinaire. Il sera entreposé dans le dossier «\SHAREMEM\». | ||
ulAttributeFlags | Ce paramètre permet d'indiquer les drapeaux décrivant les protections d'accès et d'allocation d'attributs lequel peuvent être combiné : | ||
Constante | Valeur | Description | |
PAG_READ | 0x00000001 | Cette valeur permet d'indiquer que le système peut effectué des accès en lecture. | |
PAG_WRITE | 0x00000002 | Cette valeur permet d'indiquer que le système peut effectué des accès en écriture. | |
PAG_EXECUTE | 0x00000004 | Cette valeur permet d'indiquer que le système peut effectué une exécution. | |
PAG_GUARD | 0x00000008 | Cette valeur permet d'indiquer que l'accès à un objet de mémoire peut être effectué par un gardien lors d'une exception. |
Retour
Valeur | Constante | Description |
---|---|---|
0 | NO_ERROR | Cette valeur permet d'indiquer que l'opération s'est correctement effectué |
2 | ERROR_FILE_NOT_FOUND | Cette valeur permet d'indiquer qu'une erreur de fichier introuvable s'est produite. |
8 | ERROR_NOT_ENOUGH_MEMORY | Cette valeur permet d'indiquer que la limite de mémoire système est atteinte. |
87 | ERROR_INVALID_PARAMETER | Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale. |
95 | ERROR_INTERRUPT | Cette valeur permet d'indiquer qu'une erreur d'interruption s'est produite. |
123 | ERROR_INVALID_NAME | Cette valeur permet d'indiquer que le nom pszSemaphoreName est rejeté par un fichier système. |
212 | ERROR_LOCKED | Cette valeur permet d'indiquer une erreur de verrou. |
Description
Cette fonction permet de demander l'accès à bloc de mémoire partagé nommé spécifié.
Exemple
Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :
- #define INCL_DOSERRORS
- #define INCL_DOSMEMMGR
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- PVOID BaseAddress;
- switch(DosGetNamedSharedMem( &BaseAddress, "\\SHAREMEM\\BLOC.DAT", PAG_WRITE | PAG_READ | PAG_COMMIT)) {
- case NO_ERROR: printf("Tout va bien !");break;
- case ERROR_FILE_NOT_FOUND: printf("Erreur : Une erreur de fichier introuvable s'est produite.");break;
- case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
- case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
- case ERROR_INTERRUPT: printf("Erreur : Une erreur d'interruption s'est produite.");break;
- case ERROR_INVALID_NAME: printf("Erreur : Le nom pszSemaphoreName est rejeté par un fichier système.");break;
- case ERROR_LOCKED: printf("Erreur : Une erreur de verroue.");break;
- }
- }
Voir également
Langage de programmation - C pour OS/2 - DosAllocSharedMem
Langage de programmation - C pour OS/2 - DosGetSharedMem
Langage de programmation - C pour OS/2 - DosGiveSharedMem
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010