同步函数

以下函数用于同步。

异步函数

异步函数 说明
APCProc QueueUserAPC 函数一起使用的应用程序定义的回调函数。
GetOverlappedResult 检索重叠操作的结果。
GetOverlappedResultEx 检索指定超时间隔内重叠操作的结果。
QueueUserAPC 将用户模式异步过程调用 (APC) 对象添加到指定线程的 APC 队列。

 

条件变量和 SRW 锁函数

条件变量和 SRW 锁定函数 说明
AcquireSRWLockExclusive 获取在独占模式下 (SRW) 锁的精简读取器/编写器。
AcquireSRWLockShared 获取共享模式下的精简读取器/写入器 (SRW) 锁。
InitializeConditionVariable 初始化条件变量。
InitializeSRWLock (SRW) 锁初始化精简读取器/编写器。
ReleaseSRWLockExclusive 释放以独占模式获取的精简读取器/写入器 (SRW) 锁。
ReleaseSRWLockShared 释放在共享模式下获取的精简读取器/写入器 (SRW) 锁。
SleepConditionVariableCS 在指定的条件变量上休眠,并将指定的关键部分作为原子操作释放。
SleepConditionVariableSRW 在指定的条件变量上休眠,并将指定的锁作为原子操作释放。
TryAcquireSRWLockExclusive 尝试在独占模式下获取精简读取器/写入器 (SRW) 锁定。 如果调用成功,调用线程将获取锁定的所有权。
TryAcquireSRWLockShared 尝试在共享模式下获取精简读取器/写入器 (SRW) 锁。 如果调用成功,调用线程将获取锁定的所有权。
WakeAllConditionVariable 唤醒在指定条件变量上等待的所有线程。
WakeConditionVariable 唤醒在指定条件变量上等待的单个线程。

 

关键节函数

关键部分函数 说明
DeleteCriticalSection 释放由无所有者的关键节对象使用的所有资源。
EnterCriticalSection 等待指定关键部分对象的所有权。
InitializeCriticalSection 初始化关键节对象。
InitializeCriticalSectionAndSpinCount 初始化关键节对象并设置关键节的旋转计数。
InitializeCriticalSectionEx 使用旋转计数和可选标志初始化关键节对象。
LeaveCriticalSection 释放指定关键节对象的所有权。
SetCriticalSectionSpinCount 设置指定关键节的旋转计数。
TryEnterCriticalSection 尝试进入关键部分而不发生阻塞。

 

事件函数

事件函数 说明
CreateEvent 创建或打开命名或未命名的事件对象。
CreateEventEx 创建或打开一个命名或未命名的事件对象,并返回该对象的句柄。
OpenEvent 打开现有的命名事件对象。
PulseEvent 将指定的事件对象设置为信号状态,然后在释放适当数量的等待线程后将其重置为未对齐状态。
ResetEvent 将指定的事件对象设置为非对齐状态。
SetEvent 将指定的事件对象设置为信号状态。

 

一次性初始化函数

一次性初始化函数 说明
InitOnceBeginInitialize 开始一次性初始化。
InitOnceComplete 完成一次性初始化。
InitOnceExecuteOnce 成功执行指定的函数一次。 指定相同一次性初始化结构的其他线程不能在当前线程执行此函数时执行此函数。
InitOnceInitialize 初始化一次性初始化结构。

 

互锁函数

互锁函数 说明
InterlockedAdd 对指定的 LONG 值执行原子加法运算。
InterlockedAddAcquire 对指定的 LONG 值执行原子加法运算。 该操作是使用获取内存排序语义执行的。
InterlockedAddRelease 对指定的 LONG 值执行原子加法运算。 该操作使用释放内存排序语义执行。
InterlockedAddNoFence 对指定的 LONG 值执行原子加法运算。 此操作以原子方式执行,但不使用内存屏障
InterlockedAdd64 对指定的 LONGLONG 值执行原子加法运算。
InterlockedAddAcquire64 对指定的 LONGLONG 值执行原子加法运算。 该操作是使用获取内存排序语义执行的。
InterlockedAddRelease64 对指定的 LONGLONG 值执行原子加法运算。 该操作使用释放内存排序语义执行。
InterlockedAddNoFence64 对指定的 LONGLONG 值执行原子加法运算。 此操作以原子方式执行,但不使用内存屏障
InterlockedAnd 对指定的 LONG 值执行原子 AND 操作。
InterlockedAndAcquire 对指定的 LONG 值执行原子 AND 操作。 该操作是使用获取内存排序语义执行的。
InterlockedAndRelease 对指定的 LONG 值执行原子 AND 操作。 该操作使用释放内存排序语义执行。
InterlockedAndNoFence 对指定的 LONG 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedAnd8 对指定的 字符 值执行原子 AND 操作。
InterlockedAnd8Acquire 对指定的 字符 值执行原子 AND 操作。 该操作是使用获取内存排序语义执行的。
InterlockedAnd8Release 对指定的 字符 值执行原子 AND 操作。 该操作使用释放内存排序语义执行。
InterlockedAnd8NoFence 对指定的 字符 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedAnd16 对指定的 SHORT 值执行原子 AND 操作。
InterlockedAnd16Acquire 对指定的 SHORT 值执行原子 AND 操作。 该操作是使用获取内存排序语义执行的。
InterlockedAnd16Release 对指定的 SHORT 值执行原子 AND 操作。 该操作使用释放内存排序语义执行。
InterlockedAnd16NoFence 对指定的 SHORT 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedAnd64 对指定的 LONGLONG 值执行原子 AND 操作。
InterlockedAnd64Acquire 对指定的 LONGLONG 值执行原子 AND 操作。 该操作是使用获取内存排序语义执行的。
InterlockedAnd64Release 对指定的 LONGLONG 值执行原子 AND 操作。 该操作使用释放内存排序语义执行。
InterlockedAnd64NoFence 对指定的 LONGLONG 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedBitTestAndComplement 测试指定 LONG 值的指定位并对其进行补充。
InterlockedBitTestAndComplement64 测试指定 LONG64 值的指定位并对其进行补充。 操作是原子操作
InterlockedBitTestAndResetAcquire 测试指定 LONG 值的指定位并将其设置为 0。 该操作是原子操作,它使用获取内存排序语义执行
InterlockedBitTestAndResetRelease 测试指定 LONG 值的指定位并将其设置为 0。 操作是原子操作,使用内存释放语义执行
InterlockedBitTestAndSetAcquire 测试指定 LONG 值的指定位并将其设置为 1。 该操作是原子操作,它使用获取内存排序语义执行
InterlockedBitTestAndSetRelease 测试指定 LONG 值的指定位并将其设置为 1。 该操作是原子操作,并且使用发布内存排序语义执行
InterlockedBitTestAndReset 测试指定 LONG 值的指定位并将其设置为 0。
InterlockedBitTestAndReset64 测试指定 LONG64 值的指定位并将其设置为 0。
InterlockedBitTestAndSet 测试指定 LONG 值的指定位并将其设置为 1。
InterlockedBitTestAndSet64 测试指定 LONG64 值的指定位并将其设置为 1。
InterlockedCompare64Exchange128 对指定值执行原子比较和交换操作。 函数根据比较结果将指定的 64 位值与指定的 128 位值进行比较和交换。
InterlockedCompare64ExchangeAcquire128 对指定的值执行原子比较和交换操作。 函数根据比较结果将指定的 64 位值与指定的 128 位值进行比较和交换。 该操作通过获取内存排序语义执行。
InterlockedCompare64ExchangeRelease128 对指定的值执行原子比较和交换操作。 函数根据比较结果将指定的 64 位值与指定的 128 位值进行比较和交换。 该操作使用释放内存排序语义执行。
InterlockedCompareExchange 对指定的值执行原子比较和交换操作。 函数根据比较结果比较两个指定的 32 位值,并与另一个 32 位值交换。
InterlockedCompareExchangeAcquire 对指定的值执行原子比较和交换操作。 函数根据比较结果比较两个指定的 32 位值,并与另一个 32 位值交换。 该操作通过获取内存排序语义执行。
InterlockedCompareExchangeRelease 对指定的值执行原子比较和交换操作。 函数根据比较结果比较两个指定的 32 位值,并与另一个 32 位值交换。 交换是使用释放内存排序语义执行的。
InterlockedCompareExchangeNoFence 对指定的值执行原子比较和交换操作。 函数根据比较结果比较两个指定的 32 位值,并与另一个 32 位值交换。 操作以原子方式执行,但不使用内存屏障
InterlockedCompareExchange64 对指定的值执行原子比较和交换操作。 函数比较两个指定的 64 位值,并根据比较结果与另一个 64 位值交换。
InterlockedCompareExchangeAcquire64 对指定的值执行原子比较和交换操作。 函数比较两个指定的 64 位值,并根据比较结果与另一个 64 位值交换。 使用获取内存排序语义执行交换。
InterlockedCompareExchangeRelease64 对指定的值执行原子比较和交换操作。 函数比较两个指定的 64 位值,并根据比较结果与另一个 64 位值交换。 交换是使用释放内存排序语义执行的。
InterlockedCompareExchangeNoFence64 对指定的值执行原子比较和交换操作。 函数比较两个指定的 64 位值,并根据比较结果与另一个 64 位值交换。 操作以原子方式执行,但不使用内存屏障
InterlockedCompareExchange16 对指定的值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换
InterlockedCompareExchange16Acquire 对指定的值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 该操作通过获取内存排序语义执行
InterlockedCompareExchange16Release 对指定的值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 使用释放内存排序语义执行交换
InterlockedCompareExchange16NoFence 对指定的值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 操作以原子方式执行,但不使用内存屏障
InterlockedCompareExchange128 对指定的值执行原子比较和交换操作。 函数比较两个指定的 128 位值,并根据比较结果与另一个 128 位值交换
InterlockedCompareExchangePointer 对指定的指针值执行原子比较和交换操作。 函数比较两个指定的指针值,并根据比较结果与另一个指针值交换。
InterlockedCompareExchangePointerAcquire 对指定的指针值执行原子比较和交换操作。 函数比较两个指定的指针值,并根据比较结果与另一个指针值交换。 该操作通过获取内存排序语义执行。
InterlockedCompareExchangePointerRelease 对指定的指针值执行原子比较和交换操作。 函数比较两个指定的指针值,并根据比较结果与另一个指针值交换。 该操作使用释放内存排序语义执行。
InterlockedCompareExchangePointerNoFence 对指定的值执行原子比较和交换操作。 函数比较两个指定的指针值,并根据比较结果与另一个指针值交换。 操作以原子方式执行,但不使用内存屏障
InterlockedDecrement 递减 () 指定 32 位变量的值作为原子操作减少一个。
InterlockedDecrementAcquire 递减 () 指定 32 位变量的值作为原子操作减少一个。 该操作通过获取内存排序语义执行。
InterlockedDecrementRelease 递减 () 指定 32 位变量的值作为原子操作减少一个。 该操作使用释放内存排序语义执行。
InterlockedDecrementNoFence 递减 () 指定 32 位变量的值作为原子操作减少一个。 操作以原子方式执行,但不使用内存屏障
InterlockedDecrement16 递减 (减少一) 指定 16 位变量的值作为原子操作
InterlockedDecrement16Acquire 递减 (递减 1) 指定 16 位变量的值作为原子操作。 该操作通过获取内存排序语义执行
InterlockedDecrement16Release 递减 (递减 1) 指定 16 位变量的值作为原子操作。 使用释放内存排序语义执行操作
InterlockedDecrement16NoFence 递减 (递减 1) 指定 16 位变量的值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedDecrement64 递减 () 指定 64 位变量的值作为原子操作减少 1。
InterlockedDecrementAcquire64 递减 () 指定 64 位变量的值作为原子操作减少 1。 该操作通过获取内存排序语义执行。
InterlockedDecrementRelease64 递减 () 指定 64 位变量的值作为原子操作减少 1。 该操作使用释放内存排序语义执行。
InterlockedDecrementNoFence64 递减 () 指定 64 位变量的值作为原子操作减少 1。 操作以原子方式执行,但不使用内存屏障
InterlockedExchange 将 32 位变量设置为指定值作为原子操作。
InterlockedExchangeAcquire 将 32 位变量设置为指定值作为原子操作。 该操作通过获取内存排序语义执行。
InterlockedExchangeNoFence 将 64 位变量设置为指定值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedExchange8 将 8 位变量设置为指定值作为原子操作
InterlockedExchange16 将 16 位变量设置为指定值作为原子操作。
InterlockedExchange16Acquire 将 16 位变量设置为指定值作为原子操作。 该操作是使用获取内存排序语义执行的
InterlockedExchange16NoFence 将 16 位变量设置为指定值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedExchange64 将 64 位变量设置为指定值作为原子操作。
InterlockedExchangeAcquire64 将 32 位变量设置为指定值作为原子操作。 该操作通过获取内存排序语义执行。
InterlockedExchangeNoFence64 将 64 位变量设置为指定值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedExchangePointer 以原子方式交换一对指针值。
InterlockedExchangePointerAcquire 以原子方式交换一对指针值。 该操作通过获取内存排序语义执行。
InterlockedExchangePointerNoFence 以原子方式交换一对地址。 操作以原子方式执行,但不使用内存屏障
InterlockedExchangeSubtract 执行两个值的原子减法。
InterlockedExchangeAdd 执行两个 32 位值的原子添加。
InterlockedExchangeAddAcquire 执行两个 32 位值的原子添加。 该操作通过获取内存排序语义执行。
InterlockedExchangeAddRelease 执行两个 32 位值的原子添加。 该操作使用释放内存排序语义执行。
InterlockedExchangeAddNoFence 执行两个 32 位值的原子添加。 操作以原子方式执行,但不使用内存屏障
InterlockedExchangeAdd64 执行两个 64 位值的原子添加。
InterlockedExchangeAddAcquire64 执行两个 64 位值的原子添加。 该操作通过获取内存排序语义执行。
InterlockedExchangeAddRelease64 执行两个 64 位值的原子添加。 该操作使用释放内存排序语义执行。
InterlockedExchangeAddNoFence64 执行两个 64 位值的原子添加。 操作以原子方式执行,但不使用内存屏障
InterlockedIncrement 递增 (增加一) 指定 32 位变量的值作为原子操作。
InterlockedIncrementAcquire 递增 (增加一) 指定 32 位变量的值作为原子操作。 该操作是使用获取内存排序语义执行的。
InterlockedIncrementRelease 递增 (增加一) 指定 32 位变量的值作为原子操作。 该操作是使用释放内存排序语义执行的。
InterlockedIncrementNoFence 递增 (增加一) 指定 32 位变量的值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedIncrement16 递增 () 指定 16 位变量的值作为原子操作增加一
InterlockedIncrement16Acquire 递增 (增加一) 指定 16 位变量的值作为原子操作。 该操作是使用获取内存排序语义执行的
InterlockedIncrement16Release 递增 (增加一) 指定 16 位变量的值作为原子操作。 该操作是使用释放内存排序语义执行的
InterlockedIncrement16NoFence 递增 (增加一) 指定 16 位变量的值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedIncrement64 递增 (增加一) 指定 64 位变量的值作为原子操作。
InterlockedIncrementAcquire64 递增 (增加一) 指定 64 位变量的值作为原子操作。 该操作是使用获取内存排序语义执行的。
InterlockedIncrementRelease64 递增 (增加一) 指定 64 位变量的值作为原子操作。 该操作是使用释放内存排序语义执行的。
InterlockedIncrementNoFence64 递增 (增加一) 指定 64 位变量的值作为原子操作。 操作以原子方式执行,但不使用内存屏障
InterlockedOr 对指定的 LONG 值执行原子 OR 操作。
InterlockedOrAcquire 对指定的 LONG 值执行原子 OR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedOrRelease 对指定的 LONG 值执行原子 OR 操作。 该操作使用释放内存排序语义执行。
InterlockedOrNoFence 对指定的 LONG 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedOr8 对指定的 字符 值执行原子 OR 操作。
InterlockedOr8Acquire 对指定的 字符 值执行原子 OR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedOr8Release 对指定的 字符 值执行原子 OR 操作。 该操作使用释放内存排序语义执行。
InterlockedOr8NoFence 对指定的 字符 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedOr16 对指定的 SHORT 值执行原子 OR 操作。
InterlockedOr16Acquire 对指定的 SHORT 值执行原子 OR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedOr16Release 对指定的 SHORT 值执行原子 OR 操作。 该操作使用释放内存排序语义执行。
InterlockedOr16NoFence 对指定的 SHORT 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedOr64 对指定的 LONGLONG 值执行原子 OR 操作。
InterlockedOr64Acquire 对指定的 LONGLONG 值执行原子 OR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedOr64Release 对指定的 LONGLONG 值执行原子 OR 操作。 该操作使用释放内存排序语义执行。
InterlockedOr64NoFence 对指定的 LONGLONG 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedXor 对指定的 LONG 值执行原子 XOR 操作。
InterlockedXorAcquire 对指定的 LONG 值执行原子 XOR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedXorRelease 对指定的 LONG 值执行原子 XOR 操作。 该操作使用释放内存排序语义执行。
InterlockedXorNoFence 对指定的 LONG 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedXor8 对指定的 字符 值执行原子 XOR 操作。
InterlockedXor8Acquire 对指定的 字符 值执行原子 XOR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedXor8Release 对指定的 字符 值执行原子 XOR 操作。 该操作使用释放内存排序语义执行。
InterlockedXor8NoFence 对指定的 字符 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedXor16 对指定的 SHORT 值执行原子 XOR 操作。
InterlockedXor16Acquire 对指定的 SHORT 值执行原子 XOR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedXor16Release 对指定的 SHORT 值执行原子 XOR 操作。 该操作使用释放内存排序语义执行。
InterlockedXor16NoFence 对指定的 SHORT 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障
InterlockedXor64 对指定的 LONGLONG 值执行原子 XOR 操作。
InterlockedXor64Acquire 对指定的 LONGLONG 值执行原子 XOR 操作。 该操作是使用获取内存排序语义执行的。
InterlockedXor64Release 对指定的 LONGLONG 值执行原子 XOR 操作。 该操作使用释放内存排序语义执行。
InterlockedXor64NoFence 对指定的 LONGLONG 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障

 

互斥函数

互斥函数 说明
CreateMutex 创建或打开命名的或未命名的互斥体对象。
CreateMutexEx 创建或打开一个命名或未命名的互斥体对象,并返回该对象的句柄。
OpenMutex 打开现有的命名互斥体对象。
ReleaseMutex 释放指定互斥对象的所有权。

 

专用命名空间函数

专用命名空间函数 说明
AddSIDToBoundaryDescriptor 将新的安全标识符 (SID) 添加到指定的边界描述符。
AddIntegrityLabelToBoundaryDescriptor 将新的必需安全标识符 (SID) 添加到指定的边界描述符。
ClosePrivateNamespace 关闭打开的命名空间句柄。
CreateBoundaryDescriptor 创建边界描述符。
CreatePrivateNamespace 创建专用命名空间。
DeleteBoundaryDescriptor 删除指定的边界描述符。
OpenPrivateNamespace 打开专用命名空间。

 

信号量函数

信号灯函数 说明
CreateSemaphore 创建或打开命名或未命名的信号量对象。
CreateSemaphoreEx 创建或打开一个命名或未命名的信号量对象,并返回该对象的句柄。
OpenSemaphore 打开现有的命名信号灯对象。
ReleaseSemaphore 按指定量增加指定信号灯对象的计数。

 

单一链接列表函数

单联列表函数 说明
InitializeSListHead 初始化单独链接列表的标题。
InterlockedFlushSList 刷新单独链接列表中的整个项目列表。
InterlockedPopEntrySList 从单独链接列表的前面删除项。
InterlockedPushEntrySList 在单独链接列表的前面插入一个项目。
InterlockedPushListSList 在另一个单独链接列表的前面插入一个单独链接列表。
InterlockedPushListSListEx 在另一个单独链接列表的前面插入一个单独链接列表。 对列表的访问在多处理器系统上同步。 此方法的此版本不使用 __fastcall 调用约定
QueryDepthSList 检索指定的单独链接列表中的条目数。
RtlFirstEntrySList 检索单独链接列表中的第一个条目。
RtlInitializeSListHead 初始化单独链接列表的标题。 应用程序应改为调用 InitializeSListHead
RtlInterlockedFlushSList 刷新单独链接列表中的整个项目列表。 应用程序应改为调用 InterlockedFlushSList
RtlInterlockedPopEntrySList 从单独链接列表的前面删除项。 应用程序应改为调用 InterlockedPopEntrySList
RtlInterlockedPushEntrySList 在单独链接列表的前面插入一个项目。 应用程序应改为调用 InterlockedPushEntrySList
RtlQueryDepthSList 检索指定的单独链接列表中的条目数。 应用程序应改为调用 QueryDepthSList

 

同步屏障函数

同步屏障函数 说明
DeleteSynchronizationBarrier 删除同步屏障。
EnterSynchronizationBarrier 输入同步屏障,并等待适当数量的线程在屏障上会合。
InitializeSynchronizationBarrier 初始化新的同步屏障。

 

计时器队列计时器函数

计时器队列计时器函数 说明
ChangeTimerQueueTimer 汇报计时器队列计时器。
CreateTimerQueue 为计时器创建队列。
CreateTimerQueueTimer 创建计时器队列计时器。
DeleteTimerQueue 删除计时器队列。
DeleteTimerQueueEx 删除计时器队列。
DeleteTimerQueueTimer 取消计时器队列计时器。

 

等待函数

Wait 函数 说明
MsgWaitForMultipleObjects 等待,直到一个或所有指定对象处于信号状态或超时间隔已过。 对象可以包括输入事件对象。
MsgWaitForMultipleObjectsEx 等待一个或所有指定对象处于信号状态、I/O 完成例程或异步过程调用 (APC) 排队到线程,或者超时间隔已过。 对象的数组可以包括输入事件对象。
RegisterWaitForSingleObject 指示线程池中的等待线程等待对象。
SignalObjectAndWait 向一个对象发出信号,并等待另一个对象作为单个操作。
UnregisterWait 取消已注册的等待操作。
UnregisterWaitEx 取消已注册的等待操作。
WaitForMultipleObjects 等待一个或所有指定的对象处于信号状态或超时间隔已过。
WaitForMultipleObjectsEx 等待一个或所有指定的对象处于信号状态、I/O 完成例程或异步过程调用 (APC) 排队到线程,或超时间隔已过。
WaitForSingleObject 等待指定的对象处于信号状态或超时间隔已过。
WaitForSingleObjectEx 等待指定的对象处于信号状态、I/O 完成例程或异步过程调用 (APC) 排队到线程,或超时间隔已过。
WaitOnAddress 等待指定地址处的值更改。
WaitOrTimerCallback 应用程序定义的函数,用作计时器回调或已注册的等待回调的起始地址。
WakeByAddressAll 唤醒等待地址值更改的所有线程。
WakeByAddressSingle 唤醒等待更改地址值的线程。

 

可等待计时器函数

Waitable-timer 函数 说明
CancelWaitableTimer 将指定的可等待计时器设置为非活动状态。
CreateWaitableTimer 创建或打开可等待的计时器对象。
CreateWaitableTimerEx 创建或打开一个可等待的计时器对象,并返回该对象的句柄。
OpenWaitableTimer 打开现有的命名可等待计时器对象。
SetWaitableTimer 激活指定的可等待计时器。
SetWaitableTimerEx 激活指定的可等待计时器,并为计时器提供上下文信息。 .
TimerAPCProc SetWaitableTimer 函数一起使用的应用程序定义的计时器完成例程。