This endpoint is intended for managing threads.
Information about methods of the endpoint is provided in the table below.
Method
|
Method purpose and parameters
|
Potential danger of the method
|
Create
|
Purpose
Creates a thread.
Parameters
- [out]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
tid – thread ID (TID). - [in]
priority – thread priority. - [in]
stackSize – thread stack limit (in bytes), or 0 to use the default size that was defined when the process was created. - [in]
routine – pointer to the function that is called when the thread starts. - [in]
context – pointer to the function executed by the thread. - [in]
context2 – pointer to the parameters passed to the function defined via the context parameter. - [in]
flags – flags defining the parameters for creating the thread. - [out]
rc – return code.
|
Allows the following:
- Create a real-time thread that takes up all the CPU time from other threads, including from other processes (it is recommended to monitor thread creation parameters).
- Create a multitude of threads (including with high priority) to reduce the CPU time available to the threads of other processes (it is recommended to monitor thread priority).
- Exhaust the RAM.
- Exhaust the kernel memory by creating a multitude of objects within it.
|
OpenCurrent
|
Purpose
Creates the handle of the calling thread.
Parameters
- [out]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
rc – return code.
|
N/A
|
Suspend
|
Purpose
Locks the calling thread.
Parameters
|
Locks a thread that has captured a synchronization object that was created in shared memory and is anticipated by a thread of another process. As a result, the thread of the other process may be locked indefinitely.
|
Resume
|
Purpose
Resumes execution of a locked thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
rc – return code.
|
N/A
|
Terminate
|
Purpose
Terminates a thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [in]
code – thread exit code. - [out]
rc – return code.
|
N/A
|
Exit
|
Purpose
Terminates the calling thread.
Parameters
- [in]
code – thread exit code. - [out]
rc – return code.
|
N/A
|
Wait
|
Purpose
Locks the calling thread until the defined thread is terminated.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [in]
msec – thread termination timeout (in milliseconds). - [out]
code – thread exit code. - [out]
rc – return code.
|
N/A
|
SetPriority
|
Purpose
Defines the priority of a thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [in]
priority – thread priority. - [out]
rc – return code.
|
Allows the priority of a thread to be elevated to reduce the CPU time available to all other threads, including from other processes.
It is recommended to monitor thread priority.
|
SetTls
|
Purpose
Defines the base address of the Thread Local Storage (TLS) for the calling thread.
Parameters
- [in]
va – pointer to the local memory of the thread. - [out]
rc – return code.
|
N/A
|
Sleep
|
Purpose
Locks the calling thread for the specified duration.
Parameters
- [in]
mdelay – thread lockout duration (in milliseconds). - [out]
rc – return code.
|
N/A
|
GetInfo
|
Purpose
Gets information about a thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
info is the structure containing the base address of the thread stack and its size (in bytes), and the thread identifier (TID). - [out]
rc – return code.
|
N/A
|
DetachIrq
|
Purpose
Detaches the calling thread from the interrupt handled in its context.
Parameters
|
N/A
|
GetAffinity
|
Purpose
Gets a thread affinity mask.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
mask – thread affinity mask. - [out]
rc – return code.
|
N/A
|
SetAffinity
|
Purpose
Defines a thread affinity mask.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [in]
mask – thread affinity mask. - [out]
rc – return code.
|
N/A
|
SetSchedPolicy
|
Purpose
Defines the scheduler class and priority of the thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [in]
policy – thread scheduler class. - [in]
priority – thread priority. - [in]
param – union containing parameters of a thread scheduler class. - [out]
rc – return code.
|
Allows the following:
- Convert a thread into a real-time thread that takes up all the CPU time from all other threads, including from other processes (it is recommended to monitor the thread scheduler class).
- Elevate the priority of a thread to reduce the CPU time available to all other threads, including from other processes (it is recommended to monitor thread priority).
|
GetSchedPolicy
|
Purpose
Gets information about the scheduler class and priority of a thread.
Parameters
- [in]
thread – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the thread. - [out]
policy – thread scheduler class. - [out]
priority – thread priority. - [out]
param – union containing parameters of a thread scheduler class. - [out]
rc – return code.
|
N/A
|