Table of Multithread Routines

The following table lists routines available for multithread programs. For more information on these routines, see the Microsoft Developer Network (MSDN) or platform SDK documentation.

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 IFWIN statement.