InitializeConditionVariable function (synchapi.h)

Initializes a condition variable.


void InitializeConditionVariable(
  [out] PCONDITION_VARIABLE ConditionVariable


[out] ConditionVariable

A pointer to the condition variable.

Return value



Threads can atomically release a lock and enter the sleeping state using the SleepConditionVariableCS or SleepConditionVariableSRW function. The threads are woken using the WakeConditionVariable or WakeAllConditionVariable function.

Condition variables are user-mode objects that cannot be shared across processes.

A condition variable cannot be moved or copied while in use. The process must not modify the object, and must instead treat it as logically opaque. Only use the condition variable functions to manage condition variables.

A condition variable with no waiting threads is in its initial state and can be copied, moved, and forgotten without being explicitly destroyed.


For an example that uses this function, see Using Condition Variables.


Requirement Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header synchapi.h (include Windows.h on Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

See also

Condition Variables

Synchronization Functions

Vertdll APIs available in VBS enclaves