同期関数
同期では、次の関数が使用されます。
- 非同期関数
- 条件変数と SRW ロック関数
- クリティカル セクション関数
- イベント関数
- 1 回限り初期化関数
- インターロックされた関数
- ミューテックス関数
- プライベート名前空間関数
- セマフォ関数
- 1 つのリンクされたリスト関数
- 同期バリア関数
- タイマー キュー タイマー関数
- 待機関数
- 待機可能タイマー関数
非同期関数
非同期関数 | 説明 |
---|---|
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 | 指定した条件変数で待機している 1 つのスレッドをスリープ解除します。 |
クリティカル セクション関数
クリティカル セクション関数 | 説明 |
---|---|
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 回限りの初期化構造体を初期化します。 |
インターロックされた関数
インターロックされた関数 | 説明 |
---|---|
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 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません |
ミューテックス関数
Mutex 関数 | 説明 |
---|---|
CreateMutex | 名前付きミューテックス オブジェクトまたは名前のないミューテックス オブジェクトを作成または開きます。 |
CreateMutexEx | 名前付きミューテックス オブジェクトまたは名前のないミューテックス オブジェクトを作成または開き、オブジェクトへのハンドルを返します。 |
OpenMutex | 既存の名前付きミューテックス オブジェクトを開きます。 |
ReleaseMutex | 指定したミューテックス オブジェクトの所有権を解放します。 |
プライベート名前空間関数
プライベート名前空間関数 | 説明 |
---|---|
AddSIDToBoundaryDescriptor | 指定した境界記述子に新しいセキュリティ識別子 (SID) を追加します。 |
AddIntegrityLabelToBoundaryDescriptor | 指定した境界記述子に新しい必須セキュリティ識別子 (SID) を追加します。 |
ClosePrivateNamespace | 開いている名前空間ハンドルを閉じます。 |
CreateBoundaryDescriptor | 境界記述子を作成します。 |
CreatePrivateNamespace | プライベート名前空間を作成します。 |
DeleteBoundaryDescriptor | 指定した境界記述子を削除します。 |
OpenPrivateNamespace | プライベート名前空間を開きます。 |
セマフォ関数
Semaphore 関数 | 説明 |
---|---|
CreateSemaphore | 名前付きセマフォ オブジェクトまたは名前のないセマフォ オブジェクトを作成または開きます。 |
CreateSemaphoreEx | 名前付きセマフォ オブジェクトまたは名前のないセマフォ オブジェクトを作成または開き、オブジェクトへのハンドルを返します。 |
OpenSemaphore | 既存の名前付きセマフォ オブジェクトを開きます。 |
ReleaseSemaphore | 指定したセマフォ オブジェクトの数を指定した量だけ増やします。 |
1 つのリンクされたリスト関数
1 つのリンクされたリスト関数 | 説明 |
---|---|
InitializeSListHead | 1 つのリンクされたリストの先頭を初期化します。 |
InterlockedFlushSList | 1 つのリンクされたリスト内の項目のリスト全体をフラッシュします。 |
InterlockedPopEntrySList | 1 つのリンクリストの先頭から項目を削除します。 |
InterlockedPushEntrySList | 1 つのリンクリストの先頭に項目を挿入します。 |
InterlockedPushListSList | 1 つのリンクされたリストを、1 つのリンクされた別のリストの先頭に挿入します。 |
InterlockedPushListSListEx | 1 つのリンクされたリストを、1 つのリンクされた別のリストの先頭に挿入します。 リストへのアクセスは、マルチプロセッサ システムで同期されます。 このバージョンの メソッドでは、 __fastcall 呼び出し規約は使用されません |
QueryDepthSList | 指定した 1 つのリンク リスト内のエントリの数を取得します。 |
RtlFirstEntrySList | 1 つのリンクされたリストの最初のエントリを取得します。 |
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 関数で使用されるアプリケーション定義タイマー完了ルーチン。 |