同期関数
同期では、次の関数が使用されます。
- 非同期関数
- 条件変数と SRW ロック機能
- クリティカル セクション関数
- イベント関数 の
- 1 回限りの初期化関数 を する
- インターロックされた関数の
- ミューテックス関数
- プライベート名前空間関数 を する
- セマフォ関数
- Singly にリンクされたリスト関数
- 同期バリア関数 の
- タイマー キュー タイマー関数 を する
- 待機関数の
- 待機タイマー関数
非同期関数
非同期関数 | 形容 |
---|---|
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の | 指定したイベント オブジェクトをシグナル状態に設定します。 |
1 回限りの初期化関数
1 回限りの初期化関数 | 形容 |
---|---|
InitOnceBeginInitialize | 1 回限りの初期化を開始します。 |
InitOnceComplete | 1 回限りの初期化を完了します。 |
InitOnceExecuteOnceの | 指定した関数を 1 回正常に実行します。 同じ 1 回限りの初期化構造体を指定する他のスレッドは、現在のスレッドによって実行されている間、この関数を実行できません。 |
InitOnceInitialize | 1 回限りの初期化構造体を初期化します。 |
インターロックされた関数
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の | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 32 ビット値を比較し、比較の結果に基づいて別の 32 ビット値と交換します。 |
InterlockedCompareExchangeAcquireの | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 32 ビット値を比較し、比較の結果に基づいて別の 32 ビット値と交換します。 この操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedCompareExchangeReleaseの | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 32 ビット値を比較し、比較の結果に基づいて別の 32 ビット値と交換します。 交換は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedCompareExchangeNoFence | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 32 ビット値を比較し、比較の結果に基づいて別の 32 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedCompareExchange64 | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 64 ビット値を比較し、比較の結果に基づいて別の 64 ビット値と交換します。 |
InterlockedCompareExchangeAcquire64の | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 64 ビット値を比較し、比較の結果に基づいて別の 64 ビット値と交換します。 交換は、メモリの順序付けセマンティクスを取得して実行されます。 |
InterlockedCompareExchangeRelease64 | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 64 ビット値を比較し、比較の結果に基づいて別の 64 ビット値と交換します。 交換は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedCompareExchangeNoFence64 | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 64 ビット値を比較し、比較の結果に基づいて別の 64 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedCompareExchange16 | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します |
InterlockedCompareExchange16Acquire | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 操作は、メモリの取得順序セマンティクスを使用して実行されます |
InterlockedCompareExchange16Release | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 交換は、リリース メモリ順序セマンティクスを使用して実行されます |
InterlockedCompareExchange16NoFence | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedCompareExchange128 | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つの 128 ビット値を比較し、比較の結果に基づいて別の 128 ビット値と交換します |
InterlockedCompareExchangePointerの | 指定したポインター値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つのポインター値を比較し、比較の結果に基づいて別のポインター値と交換します。 |
InterlockedCompareExchangePointerAcquireの | 指定したポインター値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つのポインター値を比較し、比較の結果に基づいて別のポインター値と交換します。 この操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedCompareExchangePointerReleaseの | 指定したポインター値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つのポインター値を比較し、比較の結果に基づいて別のポインター値と交換します。 この操作は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedCompareExchangePointerNoFenceの | 指定した値に対してアトミックな比較および交換操作を実行します。 この関数は、指定された 2 つのポインター値を比較し、比較の結果に基づいて別のポインター値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedDecrement | 指定した 32 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 |
InterlockedDecrementAcquire | 指定した 32 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 この操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedDecrementRelease | 指定した 32 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 この操作は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedDecrementNoFence | 指定した 32 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedDecrement16 | 指定した 16 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します |
InterlockedDecrement16Acquire | 指定した 16 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます |
InterlockedDecrement16Release | 指定した 16 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 この操作は、リリース メモリ順序セマンティクスで実行されます |
InterlockedDecrement16NoFence | 指定した 16 ビット変数の値をアトミック演算としてデクリメント (1 ずつ減少) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
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の | 2 つの値のアトミック減算を実行します。 |
InterlockedExchangeAddの | 2 つの 32 ビット値のアトミック加算を実行します。 |
InterlockedExchangeAddAcquireの | 2 つの 32 ビット値のアトミック加算を実行します。 この操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedExchangeAddReleaseの | 2 つの 32 ビット値のアトミック加算を実行します。 この操作は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedExchangeAddNoFenceの | 2 つの 32 ビット値のアトミック加算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedExchangeAdd64 | 2 つの 64 ビット値のアトミック加算を実行します。 |
InterlockedExchangeAddAcquire64の | 2 つの 64 ビット値のアトミック加算を実行します。 この操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedExchangeAddRelease64の | 2 つの 64 ビット値のアトミック加算を実行します。 この操作は、解放メモリ順序セマンティクスを使用して実行されます。 |
InterlockedExchangeAddNoFence64 | 2 つの 64 ビット値のアトミック加算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedIncrement | 指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 |
InterlockedIncrementAcquire | 指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedIncrementReleaseの | 指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 この操作は、リリース メモリ順序付けセマンティクスを使用して実行されます。 |
InterlockedIncrementNoFence | 指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedIncrement16 | 指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します |
InterlockedIncrement16Acquire | 指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます |
InterlockedIncrement16Release | 指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作は、リリース メモリ順序付けセマンティクスを使用して実行されます |
InterlockedIncrement16NoFence | 指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
InterlockedIncrement64 | 指定した 64 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 |
InterlockedIncrementAcquire64 | 指定した 64 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。 |
InterlockedIncrementRelease64 | 指定した 64 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 この操作は、リリース メモリ順序付けセマンティクスを使用して実行されます。 |
InterlockedIncrementNoFence64 | 指定した 64 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
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 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
ミューテックス関数
ミューテックス関数 | 形容 |
---|---|
CreateMutexをする | 名前付きミューテックス オブジェクトまたは名前のないミューテックス オブジェクトを作成または開きます。 |
CreateMutexExの | 名前付きまたは名前のないミューテックス オブジェクトを作成または開き、オブジェクトへのハンドルを返します。 |
OpenMutex | 既存の名前付きミューテックス オブジェクトを開きます。 |
ReleaseMutex | 指定したミューテックス オブジェクトの所有権を解放します。 |
プライベート名前空間関数
プライベート名前空間関数 | 形容 |
---|---|
AddSIDToBoundaryDescriptorの | 指定した境界記述子に新しいセキュリティ識別子 (SID) を追加します。 |
AddIntegrityLabelToBoundaryDescriptorの | 指定した境界記述子に新しい必要なセキュリティ識別子 (SID) を追加します。 |
ClosePrivateNamespaceをする | 開いている名前空間ハンドルを閉じます。 |
CreateBoundaryDescriptorの | 境界記述子を作成します。 |
CreatePrivateNamespaceの | プライベート名前空間を作成します。 |
DeleteBoundaryDescriptorの | 指定した境界記述子を削除します。 |
OpenPrivateNamespace | プライベート名前空間を開きます。 |
セマフォ関数
Semaphore 関数 | 形容 |
---|---|
CreateSemaphoreの | 名前付きセマフォ オブジェクトまたは名前のないセマフォ オブジェクトを作成または開きます。 |
CreateSemaphoreExの | 名前付きセマフォ オブジェクトまたは名前のないセマフォ オブジェクトを作成または開き、オブジェクトへのハンドルを返します。 |
OpenSemaphore | 既存の名前付きセマフォ オブジェクトを開きます。 |
ReleaseSemaphore | 指定したセマフォ オブジェクトの数を指定した量だけ増やします。 |
Singly にリンクされたリスト関数
Singly リンクリスト関数 | 形容 |
---|---|
InitializeSListHeadの | 1 つのリンクリストの先頭を初期化します。 |
InterlockedFlushSListの | 1 つのリンクされたリスト内の項目のリスト全体をフラッシュします。 |
InterlockedPopEntrySListの | 1 つのリンク リストの先頭から項目を削除します。 |
InterlockedPushEntrySListの | 1 つのリンク リストの先頭に項目を挿入します。 |
InterlockedPushListSListの | 個別にリンクされたリストを別の 1 つのリンク リストの先頭に挿入します。 |
InterlockedPushListSListExの | 個別にリンクされたリストを別の 1 つのリンク リストの先頭に挿入します。 リストへのアクセスは、マルチプロセッサ システムで同期されます。 このバージョンのメソッドでは、__fastcall 呼び出し規則は使用されません |
QueryDepthSList | 指定した 1 つのリンク リスト内のエントリの数を取得します。 |
RtlFirstEntrySListをする | 個別にリンクされたリスト内の最初のエントリを取得します。 |
RtlInitializeSListHeadの | 1 つのリンクリストの先頭を初期化します。 アプリケーションでは、代わりに InitializeSListHead呼び出す必要があります。 |
RtlInterlockedFlushSListをする | 1 つのリンクされたリスト内の項目のリスト全体をフラッシュします。 アプリケーションでは、代わりに InterlockedFlushSList呼び出す必要があります。 |
RtlInterlockedPopEntrySListをする | 1 つのリンク リストの先頭から項目を削除します。 アプリケーションでは、代わりに InterlockedPopEntrySList呼び出す必要があります。 |
RtlInterlockedPushEntrySListの | 1 つのリンク リストの先頭に項目を挿入します。 アプリケーションでは、代わりに InterlockedPushEntrySList呼び出す必要があります。 |
RtlQueryDepthSListをする | 指定した 1 つのリンク リスト内のエントリの数を取得します。 アプリケーションでは、代わりに QueryDepthSList呼び出す必要があります。 |
同期バリア関数
同期バリア関数 | 形容 |
---|---|
DeleteSynchronizationBarrierの | 同期バリアを削除します。 |
EnterSynchronizationBarrierの | 同期バリアを入力し、適切な数のスレッドがバリアでランデブーされるまで待機します。 |
InitializeSynchronizationBarrierの | 新しい同期バリアを初期化します。 |
タイマー キュー タイマー関数
タイマー キュー タイマー関数 | 形容 |
---|---|
ChangeTimerQueueTimerの | タイマー キュー タイマーを更新します。 |
CreateTimerQueueの | タイマーのキューを作成します。 |
CreateTimerQueueTimerの | タイマー キュー タイマーを作成します。 |
DeleteTimerQueueの | タイマー キューを削除します。 |
DeleteTimerQueueExの | タイマー キューを削除します。 |
DeleteTimerQueueTimerの | タイマー キュー タイマーを取り消します。 |
待機関数
Wait 関数 | 形容 |
---|---|
MsgWaitForMultipleObjectsの | 指定したオブジェクトの 1 つ以上がシグナル状態であるか、タイムアウト間隔が経過するまで待機します。 オブジェクトには、入力イベント オブジェクトを含めることができます。 |
MsgWaitForMultipleObjectsExの | 指定したオブジェクトの 1 つ以上がシグナル状態になるまで待機するか、I/O 完了ルーチンまたは非同期プロシージャ呼び出し (APC) がスレッドにキューに登録されるか、タイムアウト間隔が経過するまで待機します。 オブジェクトの配列には、入力イベント オブジェクトを含めることができます。 |
RegisterWaitForSingleObject | スレッド プール内の待機スレッドにオブジェクトの待機を指示します。 |
SignalObjectAndWait | 1 つのオブジェクトに通知し、別のオブジェクトを 1 回の操作として待機します。 |
UnregisterWaitの | 登録済みの待機操作を取り消します。 |
UnregisterWaitExの | 登録済みの待機操作を取り消します。 |
WaitForMultipleObjectsの | 指定したオブジェクトの 1 つ以上がシグナル状態であるか、タイムアウト間隔が経過するまで待機します。 |
WaitForMultipleObjectsExの | 指定したオブジェクトの 1 つ以上がシグナル状態になるまで待機するか、I/O 完了ルーチンまたは非同期プロシージャ呼び出し (APC) がスレッドにキューに登録されるか、タイムアウト間隔が経過するまで待機します。 |
WaitForSingleObjectの | 指定したオブジェクトがシグナル状態になるまで、またはタイムアウト間隔が経過するまで待機します。 |
WaitForSingleObjectExの | 指定したオブジェクトがシグナル状態になるまで待機し、I/O 完了ルーチンまたは非同期プロシージャ呼び出し (APC) がスレッドにキューに登録されるか、タイムアウト間隔が経過するまで待機します。 |
WaitOnAddressの | 指定したアドレスの値が変更されるまで待機します。 |
WaitOrTimerCallbackの | タイマー コールバックまたは登録された待機コールバックの開始アドレスとして機能するアプリケーション定義関数。 |
WakeByAddressAllの | アドレスの値が変更されるのを待機しているすべてのスレッドをスリープ解除します。 |
WakeByAddressSingleの | アドレスの値が変更されるのを待機しているスレッドをスリープ解除します。 |
待機タイマー関数
Waitable-timer 関数 | 形容 |
---|---|
CancelWaitableTimerをする | 指定した待機可能タイマーを非アクティブ状態に設定します。 |
CreateWaitableTimerの | 待機可能タイマー オブジェクトを作成または開きます。 |
CreateWaitableTimerExの | 待機可能タイマー オブジェクトを作成または開き、オブジェクトにハンドルを返します。 |
OpenWaitableTimer | 既存の名前付き待機可能タイマー オブジェクトを開きます。 |
SetWaitableTimerの | 指定された待機可能タイマーをアクティブにします。 |
SetWaitableTimerExの | 指定された待機可能タイマーをアクティブ化し、タイマーのコンテキスト情報を提供します。 . |
TimerAPCProc | SetWaitableTimer 関数で使用されるアプリケーション定義のタイマー完了ルーチン。 |