同步處理函式
下列函式用於同步處理。
- 非同步函式
- 條件變數和 SRW 鎖定函式
- 重要區段函式
- 事件函式
- 一次性初始化函式
- 連結函式
- Mutex 函式
- 私人命名空間函式
- 旗號函式
- Singly 連結清單函式
- 同步處理屏障函式
- 計時器佇列計時器函式
- 等候函式
- Waitable-timer 函式
非同步函式
非同步函式 | Description |
---|---|
APCProc | 與 QueueUserAPC 函式搭配使用的應用程式定義回呼函式。 |
GetOverlappedResult | 擷取重迭作業的結果。 |
GetOverlappedResultEx | 擷取指定逾時間隔內重迭作業的結果。 |
QueueUserAPC | 將使用者模式非同步程序呼叫 (APC) 物件新增至指定執行緒的 APC 佇列。 |
條件變數和 SRW 鎖定函式
條件變數和 SRW 鎖定函式 | Description |
---|---|
AcquireSRWLockExclusive | 取得獨佔模式中 (SRW) 鎖定的讀取器/寫入器。 |
AcquireSRWLockShared | 取得共用模式中 (SRW) 鎖定的讀取器/寫入器。 |
InitializeConditionVariable | 初始化條件變數。 |
InitializeSRWLock | 初始化 (SRW) 鎖定的讀取器/寫入器。 |
ReleaseSRWLockExclusive | 釋放以獨佔模式取得的精簡讀取器/寫入器 (SRW) 鎖定。 |
ReleaseSRWLockShared | 釋放在共用模式中取得的精簡讀取器/寫入器 (SRW) 鎖定。 |
SleepConditionVariableCS | 在指定的條件變數上睡眠,並將指定的關鍵區段釋放為不可部分完成的作業。 |
SleepConditionVariableSRW | 在指定的條件變數上睡眠,並將指定的鎖定釋放為不可部分完成的作業。 |
TryAcquireSRWLockExclusive | 嘗試以獨佔模式取得精簡讀取器/寫入器 (SRW) 鎖定。 如果呼叫成功,呼叫執行緒會取得鎖定的擁有權。 |
TryAcquireSRWLockShared | 嘗試取得共用模式中 (SRW) 鎖定的讀取器/寫入器。 如果呼叫成功,呼叫執行緒會取得鎖定的擁有權。 |
WakeAllConditionVariable | 喚醒所有等候指定條件變數的執行緒。 |
WakeConditionVariable | 喚醒等候指定條件變數的單一線程。 |
重要區段函式
重要區段函式 | Description |
---|---|
DeleteCriticalSection | 釋放未擁有之重要區段物件所使用的所有資源。 |
EnterCriticalSection | 等候指定之重要區段物件的擁有權。 |
InitializeCriticalSection | 初始化重要區段物件。 |
InitializeCriticalSectionAndSpinCount | 初始化重要區段物件,並設定重要區段的微調計數。 |
InitializeCriticalSectionEx | 使用微調計數和選擇性旗標,初始化重要區段物件。 |
LeaveCriticalSection | 釋放指定之重要區段物件的擁有權。 |
SetCriticalSectionSpinCount | 設定指定之關鍵區段的微調計數。 |
TryEnterCriticalSection | 嘗試進入重大區段而不封鎖。 |
事件函式
事件函式 | Description |
---|---|
CreateEvent | 建立或開啟具名或未命名的事件物件。 |
CreateEventEx | 建立或開啟具名或未命名的事件物件,並傳回物件的控制碼。 |
OpenEvent | 開啟現有的具名事件物件。 |
PulseEvent | 將指定的事件物件設定為已發出訊號的狀態,然後在釋放適當的等候執行緒數目之後,將其重設為非簽署狀態。 |
ResetEvent | 將指定的事件物件設定為非簽署狀態。 |
SetEvent | 將指定的事件物件設定為已發出訊號的狀態。 |
一次性初始化函式
一次性初始化函式 | Description |
---|---|
InitOnceBeginInitialize | 開始一次性初始化。 |
InitOnceComplete | 完成一次性初始化。 |
InitOnceExecuteOnce | 成功執行指定的函式一次。 沒有其他指定相同一次性初始化結構的執行緒可以在目前線程執行時執行此函式。 |
InitOnceInitialize | 初始化一次性初始化結構。 |
連結函式
Interlocked 函式 | Description |
---|---|
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 函式 | Description |
---|---|
CreateMutex | 建立或開啟具名或未命名的 mutex 物件。 |
CreateMutexEx | 建立或開啟具名或未命名的 mutex 物件,並傳回物件的控制碼。 |
OpenMutex | 開啟現有的具名 mutex 物件。 |
ReleaseMutex | 釋放指定 Mutex 物件的擁有權。 |
私人命名空間函式
私人命名空間函式 | Description |
---|---|
AddSIDToBoundaryDescriptor | 將新的安全性識別碼 (SID) 新增至指定的界限描述元。 |
AddIntegrityLabelToBoundaryDescriptor | 將新的必要安全性識別碼 (SID) 新增至指定的界限描述元。 |
ClosePrivateNamespace | 關閉開啟的命名空間控制碼。 |
CreateBoundaryDescriptor | 建立界限描述元。 |
CreatePrivateNamespace | 建立私人命名空間。 |
DeleteBoundaryDescriptor | 刪除指定的界限描述元。 |
OpenPrivateNamespace | 開啟私人命名空間。 |
旗號函式
旗號函式 | Description |
---|---|
CreateSemaphore | 建立或開啟具名或未命名的旗號物件。 |
CreateSemaphoreEx | 建立或開啟具名或未命名的號號物件,並傳回物件的控制碼。 |
OpenSemaphore | 開啟現有的具名旗號物件。 |
ReleaseSemaphore | 依指定的數量增加指定旗號物件的計數。 |
Singly 連結清單函式
Singly 連結清單函式 | Description |
---|---|
InitializeSListHead | 初始化單向連結清單的前端。 |
InterlockedFlushSList | 排清單一連結清單中的整個專案清單。 |
InterlockedPopEntrySList | 從單向連結清單的前面移除專案。 |
InterlockedPushEntrySList | 在單一連結清單的前面插入專案。 |
InterlockedPushListSList | 將單一連結清單插入另一個單一連結清單的前端。 |
InterlockedPushListSListEx | 將單一連結清單插入另一個單一連結清單的前端。 多處理器系統上會同步處理清單的存取權。 這個版本的 方法不會使用 __fastcall 呼叫慣例 |
QueryDepthSList | 擷取指定之單一連結清單中的專案數目。 |
RtlFirstEntrySList | 擷取單向連結清單中的第一個專案。 |
RtlInitializeSListHead | 初始化單向連結清單的前端。 應用程式應該改為呼叫 InitializeSListHead 。 |
RtlInterlockedFlushSList | 排清單一連結清單中的整個專案清單。 應用程式應該改為呼叫 InterlockedFlushSList 。 |
RtlInterlockedPopEntrySList | 從單向連結清單的前面移除專案。 應用程式應該改為呼叫 InterlockedPopEntrySList 。 |
RtlInterlockedPushEntrySList | 在單一連結清單的前面插入專案。 應用程式應該改為呼叫 InterlockedPushEntrySList 。 |
RtlQueryDepthSList | 擷取指定之單一連結清單中的專案數目。 應用程式應該改為呼叫 QueryDepthSList 。 |
同步處理屏障函式
同步處理屏障函式 | Description |
---|---|
DeleteSynchronizationBarrier | 刪除同步處理屏障。 |
EnterSynchronizationBarrier | 輸入同步處理屏障,並等候適當的執行緒數目在屏障上交集。 |
InitializeSynchronizationBarrier | 初始化新的同步處理屏障。 |
計時器佇列計時器函式
計時器佇列計時器函式 | Description |
---|---|
ChangeTimerQueueTimer | 更新計時器佇列計時器。 |
CreateTimerQueue | 建立計時器的佇列。 |
CreateTimerQueueTimer | 建立計時器佇列計時器。 |
DeleteTimerQueue | 刪除計時器佇列。 |
DeleteTimerQueueEx | 刪除計時器佇列。 |
DeleteTimerQueueTimer | 取消計時器佇列計時器。 |
等候函式
Wait 函式 | Description |
---|---|
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 函式 | Description |
---|---|
CancelWaitableTimer | 將指定的可等候計時器設定為非使用中狀態。 |
CreateWaitableTimer | 建立或開啟可等候的計時器物件。 |
CreateWaitableTimerEx | 建立或開啟可等候的計時器物件,並傳回物件的控制碼。 |
OpenWaitableTimer | 開啟現有的具名可等候計時器物件。 |
SetWaitableTimer | 啟動指定的可等候計時器。 |
SetWaitableTimerEx | 啟動指定的可等候計時器,並提供計時器的內容資訊。 . |
TimerAPCProc | 應用程式定義的計時器完成常式搭配 SetWaitableTimer 函式使用。 |