同步處理中會使用下列函式。
- 異步函式
- Condition 變數和 SRW 鎖定函式
- 重要區段函式
- 事件函式
- 一次性初始化函式
- Interlocked 函式
- Mutex 函式
- 私用命名空間函式
- 號誌函式
- Singly 連結清單函式
- 同步處理屏障函式
- 定時器佇列定時器函式
- Wait 函式
- Waitable-timer 函式
異步函式
| 異步函式 | 描述 |
|---|---|
| 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 | 初始化一次性初始化結構。 |
Interlocked 函式
| Interlocked 函式 | 描述 |
|---|---|
| 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 位變數的值遞減(減少一個),做為不可部分完成的作業。 |
| InterlockedDecrementAcquire64 | 將指定 64 位變數的值遞減(減少一個),做為不可部分完成的作業。 作業是使用取得記憶體排序語意來執行。 |
| InterlockedDecrementRelease64 | 將指定 64 位變數的值遞減(減少一個),做為不可部分完成的作業。 作業會以釋放記憶體排序語意來執行。 |
| InterlockedDecrementNoFence64 | 將指定 64 位變數的值遞減(減少一個),做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障 |
| 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 | 在指定的 char 值上執行不可部分完成的 OR 作業。 |
| InterlockedOr8Acquire | 在指定的 char 值上執行不可部分完成的 OR 作業。 作業是使用取得記憶體排序語意來執行。 |
| InterlockedOr8Release | 在指定的 char 值上執行不可部分完成的 OR 作業。 作業會以釋放記憶體排序語意來執行。 |
| InterlockedOr8NoFence | 在指定的 char 值上執行不可部分完成的 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 | 在指定的 char 值上執行不可部分完成的 XOR 作業。 |
| InterlockedXor8Acquire | 在指定的 char 值上執行不可部分完成的 XOR 作業。 作業是使用取得記憶體排序語意來執行。 |
| InterlockedXor8Release | 在指定的 char 值上執行不可部分完成的 XOR 作業。 作業會以釋放記憶體排序語意來執行。 |
| InterlockedXor8NoFence | 在指定的 char 值上執行不可部分完成的 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 函式
| Mutex 函式 | 描述 |
|---|---|
| CreateMutex | 建立或開啟具名或未命名的 Mutex 物件。 |
| CreateMutexEx | 建立或開啟具名或未命名的 Mutex 物件,並傳回物件的句柄。 |
| OpenMutex | 開啟現有的具名 Mutex 物件。 |
| ReleaseMutex | 釋放指定 Mutex 物件的擁有權。 |
私人命名空間函式
| 私人命名空間函式 | 描述 |
|---|---|
| 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 函式使用應用程式定義的定時器完成例程。 |