Section courante

A propos

Section administrative du site

DosQueryMuxWaitSem

DOS : Requête de sémaphore MuxWait
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosQueryMuxWaitSem( HMUX hmuxSemaphore, PULONG pulSemaphoreRecords, PSEMRECORD pSemaphoreRecord , PULONG pflAttributes );

Paramètres

Nom Description
hmuxSemaphore Ce paramètre permet d'indiquer le Handle de la sémaphore MuxWait d'une requête.
pulSemaphoreRecords Ce paramètre permet d'indiquer le nombre de SEMRECORD.
pSemaphoreRecord Ce paramètre permet d'indiquer un pointeur vers un tampon demandant des SEMRECORD.
pflAttributes Ce paramètre permet d'indiquer les drapeaux d'attributs spécifiant quand les sémaphores sont créé :
Constante Description
DC_SEM_SHARED Cette valeur permet d'indiquer que la sémaphore est partagé.
DCMW_WAIT_ANY Cette valeur permet d'indiquer que la sémaphore est débloqué si n'importe quel sémaphore dans la liste MuxWait est posté ou relâché.
DCMW_WAIT_ALL Cette valeur permet d'indiquer que la sémaphore est débloqué seulement si toutes les sémaphores dans la liste MuxWait sont postés ou relâchés.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
6 ERROR_INVALID_HANDLE Cette valeur permet d'indiquer que la valeur du hmuxSemaphore ne point pas sur un sémaphore valide.
8 ERROR_NOT_ENOUGH_MEMORY Cette valeur permet d'indiquer que la limite de mémoire système est atteinte.
87 ERROR_INVALID_PARAMETER Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale.
105 ERROR_SEM_OWNER_DIED Cette valeur permet d'indiquer que le propriétaire du sémaphore MuxWait spécifié est terminé.
289 ERROR_PARAM_TOO_SMALL Cette valeur permet d'indiquer que la valeur pointe sur un pulSemaphoreRecords trop petit.

Description

Cette fonction permet de retourner les enregistrements de sémaphore d'un sémaphore MuxWait référé par hmuxSemaphore.

Exemple

Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSSEMAPHORES
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     HMUX hmuxMySemaphore;
  8.     SEMRECORD SemRec;
  9.     PULONG pflAttribs;
  10.     switch(DosQueryMuxWaitSem( hmuxMySemaphore, 1, &SemRec, &pflAttribs )) {
  11.         case NO_ERROR: printf("Tout va bien !");break;
  12.         case ERROR_INVALID_HANDLE: printf("Erreur : La valeur du hmuxSemaphore ne point pas sur un sémaphore valide.");break;
  13.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  14.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  15.         case ERROR_SEM_OWNER_DIED: printf("Erreur : Le propriétaire du sémaphore MuxWait spécifié est terminé.");break;
  16.         case ERROR_PARAM_TOO_SMALL: printf("Erreur : La valeur pointe sur un pulSemaphoreRecords trop petit.");break;
  17.     }
  18. }

Voir également

Langage de programmation - C pour OS/2 - DosAddMuxWaitSem
Langage de programmation - C pour OS/2 - DosCloseMuxWaitSem
Langage de programmation - C pour OS/2 - DosCreateMuxWaitSem
Langage de programmation - C pour OS/2 - DosDeleteMuxWaitSem
Langage de programmation - C pour OS/2 - DosOpenMuxWaitSem
Langage de programmation - C pour OS/2 - DosWaitMuxWaitSem
Système d'exploitation - OS/2 - Introduction

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