同步函数

以下函数用于同步。

异步函数

异步函数 描述
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 对指定的 char 值执行原子 AND作。
InterlockedAnd8Acquire 对指定的 char 值执行原子 AND作。 使用获取内存排序语义执行该作。
InterlockedAnd8Release 对指定的 char 值执行原子 AND作。 此作是使用释放内存排序语义执行的。
InterlockedAnd8NoFence 对指定的 char 值执行原子 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 将指定的 16 位变量的值递减(减少一个)作为原子作。 使用获取内存排序语义执行该作
InterlockedDecrement16Release 将指定的 16 位变量的值递减(减少一个)作为原子作。 此作是使用释放内存排序语义执行的
InterlockedDecrement16NoFence 将指定的 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作。 此作以原子方式执行,但不使用内存屏障

 

互斥函数

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

 

专用命名空间函数

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

 

信号灯函数

信号灯函数 描述
CreateSemaphore 创建或打开命名或未命名的信号灯对象。
CreateSemaphoreEx 创建或打开命名或未命名的信号灯对象,并返回对象的句柄。
OpenSemaphore 打开现有的命名信号灯对象。
ReleaseSemaphore 将指定的信号量增加指定的信号量。

 

与 Singly 链接的列表函数

与 Singly 链接的列表函数 描述
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 函数

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