DosQueryThreadAffinity: Difference between revisions
Appearance
Created page with "==Description== DosQueryThreadAffinity allows a thread to inquire for the current thread's processor affinity mask and the system's capable processor affinity mask. ==Syntax..." |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
DosQueryThreadAffinity allows a thread to inquire for the current thread's processor affinity mask and the system's capable processor affinity mask. | |||
DosQueryThreadAffinity allows a thread to inquire for the current thread's processor affinity mask and the system's capable processor affinity mask. | |||
==Syntax== | ==Syntax== | ||
APIRET DosQueryThreadAffinity (ULONG scope, PMPAffinity pAffinityMask) | APIRET DosQueryThreadAffinity (ULONG scope, PMPAffinity pAffinityMask) | ||
==Parameters== | ==Parameters== | ||
; scope(ULONG) input | ;scope(ULONG) input | ||
:AFNTY_THREAD Return the current threads processor affinity mask. | |||
:AFNTY_SYSTEM Return the system's current capable processor affinity mask. | |||
;pAffinityMask(PMPAffinity) input : Address of MPAffinity structure to receive the affinity mask. Processors 0 31 are in mask [0] and processors 32 63 are in mask [1]. | |||
; pAffinityMask(PMPAffinity) input : Address of MPAffinity structure to receive the affinity mask. Processors 0 31 are in mask [0] and processors 32 63 are in mask [1]. | |||
==Return Code== | ==Return Code== | ||
;ulrc (APIRET) returns:DosQueryThreadAffinity returns one of the following values | |||
::13 ERROR_INVALID_DATA | |||
DosQueryThreadAffinity returns one of the following values | ::87 ERROR_INVALID_PARAMETER | ||
==Remarks== | ==Remarks== | ||
DosQueryThreadAffinity allows a thread to ask the Processor Affinity Mask for | DosQueryThreadAffinity allows a thread to ask the Processor Affinity Mask for | ||
* The current thread's processor affinity mask, scope =AFNTY_THREAD, returns qwThreadAffinity, for the calling thread. | * The current thread's processor affinity mask, scope =AFNTY_THREAD, returns qwThreadAffinity, for the calling thread. | ||
* The system's capable processor affinity mask, scope=AFNTY_SYSTEM, returns qwCapableAffinity for the system. The caller may then use any subset of the returned affinity mask to change the threads processor affinity in a later call to DosSetThreadAffinity. | * The system's capable processor affinity mask, scope=AFNTY_SYSTEM, returns qwCapableAffinity for the system. The caller may then use any subset of the returned affinity mask to change the threads processor affinity in a later call to DosSetThreadAffinity. | ||
==Example Code== | ==Example Code== | ||
<PRE> | <PRE> | ||
#define INCL_DOS#define INCL_32 | #define INCL_DOS | ||
#define INCL_32 | |||
#define INCL_DOSERRORS | #define INCL_DOSERRORS | ||
#define INCL_NOPMAPI | #define INCL_NOPMAPI | ||
#include | #include <os2.h> | ||
#include | #include <stdio.h> | ||
int main(void) { | int main(void){ | ||
APIRET rc; | APIRET rc; | ||
MPAFFINITY affinity; | MPAFFINITY affinity; | ||
rc = DosQueryThreadAffinity(AFNTY_SYSTEM, | rc = DosQueryThreadAffinity(AFNTY_SYSTEM, affinity); | ||
printf("Query system's affinity rc = %08.8xh\n",rc); | printf("Query system's affinity rc = %08.8xh\n",rc); | ||
printf("Query system's affinity affinity[0] = %08.8xh, affinity[1] = %08.8xh\n", | printf("Query system's affinity affinity[0] = %08.8xh, affinity[1] = %08.8xh\n", | ||
affinity.mask[0], affinity.mask[1]); | |||
return rc; | return rc; | ||
} | } | ||
</PRE> | </PRE> | ||
==Related Functions== | ==Related Functions== | ||
* [[ | *[[DosSetThreadAffinity]] | ||
[[Category: | [[Category:Dos]] |
Latest revision as of 23:14, 8 December 2023
DosQueryThreadAffinity allows a thread to inquire for the current thread's processor affinity mask and the system's capable processor affinity mask.
Syntax
APIRET DosQueryThreadAffinity (ULONG scope, PMPAffinity pAffinityMask)
Parameters
- scope(ULONG) input
- AFNTY_THREAD Return the current threads processor affinity mask.
- AFNTY_SYSTEM Return the system's current capable processor affinity mask.
- pAffinityMask(PMPAffinity) input
- Address of MPAffinity structure to receive the affinity mask. Processors 0 31 are in mask [0] and processors 32 63 are in mask [1].
Return Code
- ulrc (APIRET) returns
- DosQueryThreadAffinity returns one of the following values
- 13 ERROR_INVALID_DATA
- 87 ERROR_INVALID_PARAMETER
Remarks
DosQueryThreadAffinity allows a thread to ask the Processor Affinity Mask for
- The current thread's processor affinity mask, scope =AFNTY_THREAD, returns qwThreadAffinity, for the calling thread.
- The system's capable processor affinity mask, scope=AFNTY_SYSTEM, returns qwCapableAffinity for the system. The caller may then use any subset of the returned affinity mask to change the threads processor affinity in a later call to DosSetThreadAffinity.
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 = DosQueryThreadAffinity(AFNTY_SYSTEM, affinity); printf("Query system's affinity rc = %08.8xh\n",rc); printf("Query system's affinity affinity[0] = %08.8xh, affinity[1] = %08.8xh\n", affinity.mask[0], affinity.mask[1]); return rc; }