Section courante

A propos

Section administrative du site

DosQueryMem

DOS : Requête mémoire
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosQueryMem( PVOID pBaseAddress, PULONG pulRegionSize, PULONG pulAllocationFlags );

Paramètres

Nom Description
pBaseAddress Ce paramètre permet d'indiquer l'adresse de base d'un bloc de mémoire de la requête.
pulRegionSize Ce paramètre permet d'indiquer l'entrée d'un pointeur à une variable contenant la taille en octets d'un rang de pages de la requête.
pulAllocationFlags Ce paramètre contient un pointeur permettant de recevoir les attributs de drapeau décrivant l'allocation et la protection d'accès d'un bloc de mémoire à changer. Les valeurs peuvent être combiné :
Constante Valeur Description
PAG_READ 0x00000001 Cette valeur permet d'indiquer que l'accès en lecture de pages mémoire est alloué.
PAG_WRITE 0x00000002 Cette valeur permet d'indiquer que l'accès en écriture de pages mémoire est alloué.
PAG_EXECUTE 0x00000004 Cette valeur permet d'indiquer que l'accès en exécution de pages mémoire est alloué.
PAG_GUARD 0x00000008 Cette valeur permet d'indiquer que l'accès à des pages mémoires à cause qu'un gardien est appelé par une exception est autorisé.
PAG_COMMIT 0x00000010 Cette valeur permet d'indiquer que les pages de mémoires ont des obligations.
PAG_FREE 0x00004000 Cette valeur permet d'indiquer que les pages de mémoires sont libres.
PAG_SHARED 0x00002000 Cette valeur permet d'indiquer que les requêtes de pages de mémoires sont des blocs de mémoire partagé.
PAG_BASE 0x00010000 Cette valeur permet d'indiquer que la première page spécifié est la base d'un objet de mémoire.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
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.
487 ERROR_INVALID_ADDRESS Cette valeur permet d'indiquer une erreur d'adresse invalide.

Description

Cette fonction permet de demander l'attribut d'allocation et l'accès de protection d'un rang dans des pages lors de processus d'adressage d'espace.

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.     ULONG RegionSize;
  9.     ULONG Flags;
  10.     RegionSize = 4096;
  11.     switch(DosQueryMem( BaseAddress, &RegionSize, &Flags)) {
  12.         case NO_ERROR: printf("Tout va bien !");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_INVALID_ADDRESS: printf("Erreur : Une erreur d'adresse invalide.");break;
  16.     }
  17. }

Voir également

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

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