| Platform SDK: DLLs, Processes, and Threads |
The following functions are used with processes.
| Function | Description |
|---|---|
| CommandLineToArgvW | Parses a Unicode command-line string. |
| CreateProcess | Creates a new process and its primary thread. |
| CreateProcessAsUser | Creates a new process and its primary thread. The new process runs in the security context of the specified user. |
| CreateProcessWithLogonW | Creates a new process and its primary thread. The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password). |
| ExitProcess | Ends a process and all its threads. |
| FreeEnvironmentStrings | Frees a block of environment strings. |
| GetCommandLine | Retrieves the command-line string for the current process. |
| GetCurrentProcess | Retrieves a pseudo handle for the current process. |
| GetCurrentProcessId | Retrieves the process identifier of the calling process. |
| GetEnvironmentStrings | Retrieves the environment block for the current process. |
| GetEnvironmentVariable | Retrieves the value of the specified variable from the environment block of the calling process. |
| GetExitCodeProcess | Retrieves the termination status of the specified process. |
| GetGuiResources | Retrieves the count of handles to graphical user interface (GUI) objects in use by the specified process. |
| GetPriorityClass | Retrieves the priority class for the specified process. |
| GetProcessAffinityMask | Retrieves a process affinity mask for the specified process and the system affinity mask for the system. |
| GetProcessIoCounters | Retrieves accounting information for all I/O operations performed by the specified process. |
| GetProcessPriorityBoost | Retrieves the priority boost control state of the specified process. |
| GetProcessShutdownParameters | Retrieves shutdown parameters for the currently calling process. |
| GetProcessTimes | Retrieves timing information about for the specified process. |
| GetProcessVersion | Retrieves the major and minor version numbers of the system on which the specified process expects to run. |
| GetProcessWorkingSetSize | Retrieves the minimum and maximum working set sizes of the specified process. |
| GetStartupInfo | Retrieves the contents of the STARTUPINFO structure that was specified when the calling process was created. |
| OpenProcess | Opens an existing process object. |
| SetEnvironmentVariable | Sets the value of an environment variable for the current process. |
| SetPriorityClass | Sets the priority class for the specified process. |
| SetProcessAffinityMask | Sets a processor affinity mask for the threads of a specified process. |
| SetProcessPriorityBoost | Disables the ability of the system to temporarily boost the priority of the threads of the specified process. |
| SetProcessShutdownParameters | Sets shutdown parameters for the currently calling process. |
| SetProcessWorkingSetSize | Sets the minimum and maximum working set sizes for the specified process. |
| TerminateProcess | Terminates the specified process and all of its threads. |
The following functions are used with threads.
| 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. |
| CreateThread | Creates a thread to execute within the virtual address space of the calling process. |
| ExitThread | Ends a 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. |
| 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. |
| ResumeThread | Decrements a thread's suspend count. |
| SetThreadAffinityMask | Sets a processor affinity mask for the specified thread. |
| SetThreadIdealProcessor | Specifies a preferred processor for a thread. |
| SetThreadPriority | Sets the priority value for the specified thread. |
| SetThreadPriorityBoost | Disables the ability of the system to temporarily boost the priority of a 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 with job objects.
| Function | Description |
|---|---|
| AssignProcessToJobObject | Associates a process with an existing job object. |
| CreateJobObject | Creates or opens a job object. |
| OpenJobObject | Opens an existing job object. |
| QueryInformationJobObject | Retrieves limit and job state information from the job object. |
| SetInformationJobObject | Set limits for a job object. |
| TerminateJobObject | Terminates all processes currently associated with the job. |
| UserHandleGrantAccess | Grants or denies access to a handle to a User object to a job that has a user-interface restriction. |
The following functions are used in thread pooling.
| Function | Description |
|---|---|
| BindIoCompletionCallback | Binds the specified file handle to the thread pool's I/O completion port. |
| QueueUserWorkItem | Queues a work item to a worker thread in the thread pool. |
The following functions are used with fibers.
| Function | Description |
|---|---|
| ConvertThreadToFiber | Converts the current thread into a fiber. |
| CreateFiber | Allocates a fiber object, assigns it a stack, and sets up execution to begin at the specified start address. |
| DeleteFiber | Deletes an existing fiber. |
| FiberProc | An application-defined function used with the CreateFiber function. |
| SwitchToFiber | Schedules a fiber. |
These functions are provided only for compatibility with 16-bit versions of Windows.