The following table lists routines available for multithread programs. For information about the calling syntax of these routines, see the Platform SDK title in HTML Help Viewer.
| Routine | Description |
|---|---|
| CloseHandle | Closes an open object handle. |
| CreateEvent | Creates a named or unnamed event object. |
| CreateMutex | Creates a named or unnamed mutex object. |
| CreateProcess | Creates a new process and its primary thread. |
| CreateSemaphore | Creates a named or unnamed semaphore object. |
| CreateThread | Creates a thread to execute within the address space of the calling process. |
| DeleteCriticalSection | Releases all resources used by an unowned critical section object. |
| DuplicateHandle | Duplicates an object handle. |
| EnterCriticalSection | Waits for ownership of the specified critical section object. |
| ExitProcess | Ends a process and all its threads. |
| ExitThread | Ends a thread. |
| GetCurrentProcess | Returns a pseudohandle for the current process. |
| GetCurrentProcessId | Returns the process identifier of the calling process. |
| GetCurrentThread | Returns a pseudohandle for the current thread. |
| GetCurrentThreadId | Returns the thread identifier of the calling thread. |
| GetExitCodeProcess | Retrieves the termination status of the specified process. |
| GetExitCodeThread | Retrieves the termination status of the specified thread. |
| GetLastError | Returns the calling thread's last-error code value. |
| GetPriorityClass | Returns the priority class for the specified process. |
| GetThreadPriority | Returns the priority value for the specified thread. |
| InitializeCriticalSection | Initializes a critical section object. |
| LeaveCriticalSection | Releases ownership of the specified critical section object. |
| OpenEvent | Returns a handle of an existing named event object. |
| OpenMutex | Returns a handle of an existing named mutex object. |
| OpenProcess | Returns a handle of an existing process object. |
| OpenSemaphore | Returns a handle of an existing named semaphore object. |
| PulseEvent | As a single operation, sets (to signaled) and then resets the state of the specified event object after releasing the appropriate number of waiting threads. |
| ReleaseMutex | Releases ownership of the specified mutex object. |
| ReleaseSemaphore | Increases the count of the specified semaphore object by a specified amount. |
| ResetEvent | Sets the state of the specified event object to nonsignaled. |
| ResumeThread | Decrements a thread's suspend count. When the suspend count is zero, execution of the thread resumes. |
| SetEvent | Sets the state of the specified event object to signaled. |
| SetLastError | Sets the last-error code for the calling thread. |
| SetPriorityClass | Sets the priority class for the specified process. |
| SetThreadPriority | Sets the priority value for the specified thread. |
| SuspendThread | Suspends the specified thread. |
| TerminateProcess | Terminates the specified process and all of its threads. |
| TerminateThread | Terminates a thread. |
| TlsAlloc | Allocates a thread local storage (TLS) index. |
| TlsFree | Releases a thread local storage (TLS) index, making it available for reuse. |
| TlsGetValue | Retrieves the value in the calling thread's thread local storage (TLS) slot for a specified TLS index. |
| TlsSetValue | Stores a value in the calling thread's thread local storage (TLS) slot for a specified TLS index. |
| WaitForMultipleObjects | Returns either any one or all of the specified objects are in the signaled state or when the time-out interval elapses. |
| WaitForSingleObject | Returns when the specified object is in the signaled state or the time-out interval elapses. |
If a function mentioned in this section is not listed in the preceding table, it is only available through the USE DFWIN statement.