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 :
- #define INCL_DOSERRORS
- #define INCL_DOSMEMMGR
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- PVOID BaseAddress;
- ULONG RegionSize;
- ULONG Flags;
- RegionSize = 4096;
- switch(DosQueryMem( BaseAddress, &RegionSize, &Flags)) {
- case NO_ERROR: printf("Tout va bien !");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_ADDRESS: printf("Erreur : Une erreur d'adresse invalide.");break;
- }
- }
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