以下函数用于同步。
- 异步函数
- 条件变量和 SRW 锁函数
- 关键节函数
- 事件函数
- 一次性初始化函数
- 互锁函数
- 互斥函数
- 专用命名空间函数
- 信号灯函数
- Singly 链接的列表函数
- 同步屏障函数
- 计时器队列计时器函数
- Wait 函数
- 可等待计时器函数
异步函数
| 异步函数 | 描述 |
|---|---|
| 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 函数一起使用的应用程序定义的计时器完成例程。 |