Section courante

A propos

Section administrative du site

DosSubSetMem

DOS : Sous fixage de mémoire
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosSubSetMem( PVOID pOffset, ULONG ulFlags, ULONG ulSize );

Paramètres

Nom Description
pOffset Ce paramètre permet d'indiquer l'adresse de mémoire pool utilisé pour la sous-allocation.
ulFlags Ce paramètre permet d'indiquer les drapeaux utilisés pour la description des caractéristiques d'un objet mémoire dans sa sous-allocation. Voici les valeurs pouvant être combinés :
Constante Valeur Description
DOSSUB_INIT 0x00000001 Cette valeur permet d'indiquer que le bloc de mémoire est initialisé pour sa sous-allocation.
DOSSUB_GROW 0x00000002 Cette valeur permet d'indiquer que la taille de la mémoire pool doit être augmenté.
DOSSUB_SPARSE_OBJ 0x00000004 Cette valeur permet d'indiquer que si une fonction de sous-allocation doit être utilisé afin de gérer l'engagement des pages dans une mémoire pool, cette valeur devra être fixé.
DOSSUB_SERIALIZE 0x00000008 Cette valeur permet d'indiquer qu'il faut sérialiser la mémoire pool.
ulSize Ce paramètre permet d'indiquer la taille, en octets, de la mémoire pool. Celui-ci est supposé être un multiple de 8 octets.

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.
310 ERROR_DOSSUB_SHRINK Cette valeur permet d'indiquer qu'une erreur d'étirement de sous-mémoire s'est produite.

Description

Cette fonction permet d'utiliser l'initialisation d'un pool pour les sous-allocations ou d'utiliser écrasement de la taille d'une mémoire de pool déjà initialisé.

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 Offset; 
  8.     switch(DosSubSetMem( Offset, DOSSUB_INIT | DOSSUB_SPARSE_OBJ, 40000)) {
  9.         case NO_ERROR: printf("Tout va bien !");break;
  10.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  11.         case ERROR_DOSSUB_SHRINK: printf("Erreur : Une erreur d'étirement de sous-mémoire s'est produite.");break;
  12.     }
  13. }

Voir également

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

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