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 :
- #define INCL_DOSERRORS
- #define INCL_DOSMEMMGR
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- PVOID Offset;
- switch(DosSubSetMem( Offset, DOSSUB_INIT | DOSSUB_SPARSE_OBJ, 40000)) {
- 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_DOSSUB_SHRINK: printf("Erreur : Une erreur d'étirement de sous-mémoire s'est produite.");break;
- }
- }
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