Section courante

A propos

Section administrative du site

DosGiveSharedMem

DOS : Donne une mémoire partagé
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosGiveSharedMem( PVOID pBaseAddress, PID idProcessId, 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.
idProcessId Ce paramètre permet d'indiquer un identificateur de processus à laquelle on donne l'accès au bloc de mémoire partagé.
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.
303 ERROR_INVALID_PROCID Cette valeur permet d'indiquer un identificateur de procédure invalide.
487 ERROR_INVALID_ADDRESS Cette valeur permet d'indiquer une erreur d'adresse invalide.

Description

Cette fonction permet d'utiliser un autre processus d'accès à un bloc de mémoire partagé.

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 BaseAddress; 
  8.     PID ProcessID; 
  9.     switch(DosGiveSharedMem( BaseAddress, ProcessID, PAG_WRITE | PAG_READ)) {
  10.         case NO_ERROR: printf("Tout va bien !");break;
  11.         case ERROR_ACCESS_DENIED: printf("Erreur : Une erreur d'accès refusé s'est produite.");break;
  12.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  13.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  14.         case ERROR_INTERRUPT: printf("Erreur : Une erreur d'interruption s'est produite.");break;
  15.         case ERROR_LOCKED: printf("Erreur : Une erreur de verroue.");break;
  16.         case ERROR_INVALID_PROCID: printf("Erreur : Un identificateur de procédure invalide.");break;
  17.         case ERROR_INVALID_ADDRESS: printf("Erreur : Une erreur d'adresse invalide.");break;
  18.     }
  19. }

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 - DosGetSharedMem
Système d'exploitation - OS/2 - Introduction

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