Jump to content

DosSetThreadAffinity

From EDM2
Revision as of 23:17, 8 December 2023 by Ak120 (talk | contribs) (Return Code)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

DosSetThreadAffinity allows the calling thread to change the processor affinity mask for the current thread.

Syntax

DosSetThreadAffinity (pAffinityMask)

Parameters

pAffinityMask (PMPAffinity) input
Address of an MPAFFINITY structure that will become the current thread's affinity mask.

Return Code

ulrc (APIRET) returns
DosSetThreadAffinity returns one of the following values
13 ERROR_INVALID_DATA
87 ERROR_INVALID_PARAMETER

Remarks

The processor affinity mask contains 1 bit per processor. A maximum of 64 processors can be designated. If affinity bits are on for non-existent processors, the error ERROR_INVALID_DATA will be returned.

Example Code

#define INCL_DOS
#define INCL_32
#define INCL_DOSERRORS
#define INCL_NOPMAPI
#include <os2.h>
#include <stdio.h>

int main(void){
  APIRET rc;
  MPAFFINITY affinity;
 
  rc = DosSetThreadAffinity(affinity);
  printf("Set thread's affinity  rc = %08.8xh\n", rc);
  printf("Set thread's affinity  affinity[0] = %08.8xh, affinity[1] = %08.8xh\n",
          affinity.mask[0], affinity.mask[1]);
  return rc;
}

Related Functions