This topic describes the process and thread functions.
The following functions are used to enumerate processes.
| Function | Description |
| AttachThreadInput | Attaches the input processing mechanism of one thread to that of another thread. |
| CreateRemoteThread | Creates a thread that runs in the virtual address space of another process. |
| CreateRemoteThreadEx | Creates a thread that runs in the virtual address space of another process and optionally specifies extended attributes such as processor group affinity. |
| CreateThread | Creates a thread to execute within the virtual address space of the calling process. |
| ExitThread | Ends the calling thread. |
| GetCurrentThread | Retrieves a pseudo handle for the current thread. |
| GetCurrentThreadId | Retrieves the thread identifier of the calling thread. |
| GetExitCodeThread | Retrieves the termination status of the specified thread. |
| GetThreadGroupAffinity | Retrieves the processor group affinity of the specified thread. |
| GetThreadId | Retrieves the thread identifier of the specified thread. |
| GetThreadIdealProcessorEx | Retrieves the processor number of the ideal processor for the specified thread. |
| GetThreadIOPendingFlag | Determines whether a specified thread has any I/O requests pending. |
| GetThreadPriority | Retrieves the priority value for the specified thread. |
| GetThreadPriorityBoost | Retrieves the priority boost control state of the specified thread. |
| GetThreadTimes | Retrieves timing information for the specified thread. |
| OpenThread | Opens an existing thread object. |
| QueryIdleProcessorCycleTime | Retrieves the cycle time for the idle thread of each processor in the system. |
| QueryThreadCycleTime | Retrieves the cycle time for the specified thread. |
| ResumeThread | Decrements a thread's suspend count. |
| SetThreadAffinityMask | Sets a processor affinity mask for the specified thread. |
| SetThreadGroupAffinity | Sets the processor group affinity for the specified thread. |
| SetThreadIdealProcessor | Specifies a preferred processor for a thread. |
| SetThreadIdealProcessorEx | Sets the ideal processor for the specified thread and optionally retrieves the previous ideal processor. |
| SetThreadPriority | Sets the priority value for the specified thread. |
| SetThreadPriorityBoost | Disables the ability of the system to temporarily boost the priority of a thread. |
| SetThreadStackGuarantee | Sets the stack guarantee for the calling thread. |
| Sleep | Suspends the execution of the current thread for a specified interval. |
| SleepEx | Suspends the current thread until the specified condition is met. |
| SuspendThread | Suspends the specified thread. |
| SwitchToThread | Causes the calling thread to yield execution to another thread that is ready to run on the current processor. |
| TerminateThread | Terminates a thread. |
| ThreadProc | An application-defined function that serves as the starting address for a thread. |
| TlsAlloc | Allocates a thread local storage (TLS) index. |
| TlsFree | Releases a TLS index. |
| TlsGetValue | Retrieves the value in the calling thread's TLS slot for a specified TLS index. |
| TlsSetValue | Stores a value in the calling thread's TLS slot for a specified TLS index. |
| WaitForInputIdle | Waits until the specified process is waiting for user input with no input pending, or until the time-out interval has elapsed. |
The following functions are used to set extended attributes for process and thread creation.
The following functions are used with user-mode scheduling (UMS).