Section courante

A propos

Section administrative du site

DosGetSharedMem

DOS : Demande la mémoire partagé
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosGetSharedMem( PVOID pBaseAddress, 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.
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é
5 ERROR_ACCESS_DENIED Cette valeur permet d'indiquer qu'une erreur d'accès refusé 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.
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é spécifié.

Exemple

Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSMEMMGR
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     PVOID pBaseAddress;
  8.     switch(DosGetSharedMem(pBaseAddress, PAG_WRITE | PAG_READ | PAG_COMMIT)) {
  9.         case NO_ERROR: printf("Tout va bien !");break;
  10.         case ERROR_ACCESS_DENIED: printf("Erreur : Une erreur d'accès refusé s'est produite.");break;
  11.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  12.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  13.         case ERROR_INTERRUPT: printf("Erreur : Une erreur d'interruption s'est produite.");break;
  14.         case ERROR_LOCKED: printf("Erreur : Une erreur de verroue.");break;
  15.     }
  16. }

Voir également

Langage de programmation - C pour OS/2 - DosAllocSharedMem
Langage de programmation - C pour OS/2 - DosGetNamedSharedMem
Langage de programmation - C pour OS/2 - DosGiveSharedMem
Système d'exploitation - OS/2 - Introduction

Dernière mise à jour : Lundi, le 19 juillet 2010