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