Synchronizační funkce
V synchronizaci se používají následující funkce.
- asynchronních funkcí
- proměnné podmínky a funkce zámku SRW
- kritické funkce oddílu
- funkce událostí
- jednorázové inicializační funkce
- interlocked Functions
- funkce Mutex
- funkce privátního oboru názvů
- funkce Semaphore
- singly propojenými funkcemi seznamu
- synchronizační bariérové funkce
- funkce časovače
- funkcí čekání
- funkce časovače s možností čekání
Asynchronní funkce
Asynchronní funkce | Popis |
---|---|
APCProc | Funkce zpětného volání definovaná aplikací, která se používá s funkcí QueueUserAPC. |
GetOverlappedResult | Načte výsledky překrývající se operace. |
GetOverlappedResultEx | Načte výsledky překrývající se operace v zadaném intervalu časového limitu. |
QueueUserAPC | Přidá objekt asynchronní procedury v uživatelském režimu volání (APC) do fronty APC zadaného vlákna. |
Proměnné podmínky a funkce zámku SRW
Proměnná podmínky a funkce zámku SRW | Popis |
---|---|
AcquireSRWLockExclusive | Získá zámek slim reader/writer (SRW) ve výhradním režimu. |
AcquireSRWLockShared | Získá zámek čtečky/zapisovače (SRW) ve sdíleném režimu. |
InitializeConditionVariable | Inicializuje proměnnou podmínky. |
InitializeSRWLock | Inicializace zámku čtečky/zapisovače (SRW) |
ReleaseSRWLockExclusive | Uvolní zámek slim reader/writer (SRW), který byl získán ve výhradním režimu. |
ReleaseSRWLockShared | Uvolní zámek slim reader/writer (SRW), který byl získán ve sdíleném režimu. |
SleepConditionVariableCS | Přepne na zadanou proměnnou podmínky a uvolní zadanou kritickou část jako atomické operace. |
SleepConditionVariableSRW | Přepne na zadanou proměnnou podmínky a uvolní zadaný zámek jako atomické operace. |
TryAcquireSRWLockExclusive | Pokusí se získat zámek čtečky/zapisovače (SRW) ve výhradním režimu. Pokud je volání úspěšné, volající vlákno převezme vlastnictví zámku. |
TryAcquireSRWLockShared | Pokusí se získat zámek čtečky/zapisovače (SRW) ve sdíleném režimu. Pokud je volání úspěšné, volající vlákno převezme vlastnictví zámku. |
WakeAllConditionVariable | Probuďte všechna vlákna čekající na zadanou proměnnou podmínky. |
WakeConditionVariable | Probuďte jedno vlákno čekající na zadanou proměnnou podmínky. |
Důležité funkce oddílu
Kritická funkce oddílu | Popis |
---|---|
DeleteCriticalSection | Uvolní všechny prostředky používané objektem oddílu bez vlastníka. |
EnterCriticalSection | Čeká na vlastnictví zadaného objektu kritického oddílu. |
initializeCriticalSection | Inicializuje kritický objekt oddílu. |
initializeCriticalSectionAndSpinCount | Inicializuje objekt kritického oddílu a nastaví počet čísel pro kritický oddíl. |
InitializeCriticalSectionEx | Inicializuje objekt kritického oddílu s počtem čísel a volitelnými příznaky. |
LeaveCriticalSection | Uvolní vlastnictví zadaného objektu kritického oddílu. |
SetCriticalSectionSpinCount | Nastaví počet čísel pro zadaný kritický oddíl. |
TryEnterCriticalSection | Pokusí se zadat kritický oddíl bez blokování. |
Funkce událostí
Event – funkce | Popis |
---|---|
CreateEvent | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt události. |
CreateEventEx | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt události a vrátí popisovač objektu. |
OpenEvent | Otevře existující pojmenovaný objekt události. |
PulseEvent | Nastaví zadaný objekt události do signalovaného stavu a potom ho resetuje na nepodepsaný stav po uvolnění odpovídajícího počtu čekajících vláken. |
ResetEvent | Nastaví zadaný objekt události na nepřiřazený stav. |
SetEvent | Nastaví zadaný objekt události na signalovaný stav. |
Jednorázové inicializační funkce
Jednorázová inicializační funkce | Popis |
---|---|
initOnceBeginInitialize | Začíná jednorázová inicializace. |
InitOnceComplete | Dokončí jednorázovou inicializaci. |
InitOnceExecuteOnce | Spustí zadanou funkci jednou úspěšně. Žádná další vlákna, která určují stejnou jednorázovou inicializační strukturu, může tuto funkci spustit, když je spuštěna aktuálním vláknem. |
initOnceInitialize | Inicializuje jednorázovou inicializační strukturu. |
Interlocked Functions
Interlocked function | Popis |
---|---|
InterlockedAdd | Provede operaci atomového sčítání na zadaných hodnotách LONG. |
InterlockedAddAcquire | Provede operaci atomového sčítání na zadaných hodnotách LONG. Operace se provádí s využitím sémantiky řazení paměti. |
interlockedAddRelease | Provede operaci atomového sčítání na zadaných hodnotách LONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAddNoFence | Provede operaci atomového sčítání na zadaných hodnotách LONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedAdd64 | Provede operaci atomového sčítání u zadaných hodnot LONGLONG. |
InterlockedAddAcquire64 | Provede operaci atomového sčítání u zadaných hodnot LONGLONG. Operace se provádí s využitím sémantiky řazení paměti. |
interlockedAddRelease64 | Provede operaci atomového sčítání u zadaných hodnot LONGLONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAddNoFence64 | Provede operaci atomového sčítání u zadaných hodnot LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedAnd | Provede atomické operace AND se zadanými hodnotami LONG. |
interlockedAndAcquire | Provede atomické operace AND se zadanými hodnotami LONG. Operace se provádí s využitím sémantiky řazení paměti. |
interlockedAndRelease | Provede atomické operace AND se zadanými hodnotami LONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAndNoFence | Provede atomické operace AND se zadanými hodnotami LONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedAnd8 | Provede atomickovou operaci AND na zadaných znakových hodnotách. |
InterlockedAnd8Acquire | Provede atomickovou operaci AND na zadaných znakových hodnotách. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedAnd8Release | Provede atomickovou operaci AND na zadaných znakových hodnotách. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAnd8NoFence | Provede atomickovou operaci AND na zadaných znakových hodnotách. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedAnd16 | Provede atomické operace AND se zadanými hodnotami SHORT. |
InterlockedAnd16Acquire | Provede atomické operace AND se zadanými hodnotami SHORT. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedAnd16Release | Provede atomické operace AND se zadanými hodnotami SHORT. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAnd16NoFence | Provede atomické operace AND se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedAnd64 | Provede atomické operace AND se zadanými hodnotami LONGLONG. |
InterlockedAnd64Acquire | Provede atomické operace AND se zadanými hodnotami LONGLONG. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedAnd64Release | Provede atomické operace AND se zadanými hodnotami LONGLONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedAnd64NoFence | Provede atomické operace AND se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedBitTestAndComplement | Otestuje zadaný bit zadané hodnoty LONG a doplňuje ji. |
InterlockedBitTestAndComplement64 | Otestuje zadaný bit zadané hodnoty LONG64 a doplní ji. Operace je atomická. |
InterlockedBitTestAndResetAcquire | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na hodnotu 0. Operace je atomická a provádí se sémantikou řazení paměti. |
interlockedBitTestAndResetRelease | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na hodnotu 0. Operace je atomická a provádí se pomocí sémantiky uvolnění paměti. |
interlockedBitTestAndSetAcquire | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na 1. Operace je atomická a provádí se sémantikou řazení paměti. |
interlockedBitTestAndSetRelease | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na 1. Operace je atomická a provádí se sémantikou řazení paměti uvolnění paměti. |
InterlockedBitTestAndReset | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na hodnotu 0. |
interlockedBitTestAndReset64 | Otestuje zadaný bit zadané hodnoty LONG64 a nastaví ho na hodnotu 0. |
InterlockedBitTestAndSet | Otestuje zadaný bit zadané hodnoty LONG a nastaví ho na 1. |
InterlockedBitTestAndSet64 | Otestuje zadaný bit zadané hodnoty LONG64 a nastaví ho na 1. |
InterlockedCompare64Exchange128 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává zadané 64bitové hodnoty a vyměňuje se zadanou 128bitovou hodnotou na základě výsledku porovnání. |
InterlockedCompare64ExchangeAcquire128 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává zadané 64bitové hodnoty a vyměňuje se zadanou 128bitovou hodnotou na základě výsledku porovnání. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedCompare64ExchangeRelease128 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává zadané 64bitové hodnoty a vyměňuje se zadanou 128bitovou hodnotou na základě výsledku porovnání. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedCompareExchange | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 32bitové hodnoty a vymění s jinou 32bitovou hodnotou na základě výsledku porovnání. |
InterlockedCompareExchangeAcquire | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 32bitové hodnoty a vymění s jinou 32bitovou hodnotou na základě výsledku porovnání. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedCompareExchangeRelease | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 32bitové hodnoty a vymění s jinou 32bitovou hodnotou na základě výsledku porovnání. Výměna se provádí sémantikou řazení paměti vydané verze. |
InterlockedCompareExchangeNoFence | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 32bitové hodnoty a vymění s jinou 32bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedCompareExchange64 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 64bitové hodnoty a vymění s jinou 64bitovou hodnotou na základě výsledku porovnání. |
InterlockedCompareExchangeAcquire64 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 64bitové hodnoty a vymění s jinou 64bitovou hodnotou na základě výsledku porovnání. Výměna se provádí s využitím sémantiky řazení paměti. |
InterlockedCompareExchangeRelease64 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 64bitové hodnoty a vymění s jinou 64bitovou hodnotou na základě výsledku porovnání. Výměna se provádí sémantikou řazení paměti vydané verze. |
InterlockedCompareExchangeNoFence64 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 64bitové hodnoty a vymění s jinou 64bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedCompareExchange16 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a výměny s jinou 16bitovou hodnotou na základě výsledku porovnání. |
InterlockedCompareExchange16Acquire | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedCompareExchange16Release | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Výměna se provádí sémantikou řazení paměti vydané verze. |
InterlockedCompareExchange16NoFence | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 16bitové hodnoty a vymění s jinou 16bitovou hodnotou na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedCompareExchange128 | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané 128bitové hodnoty a výměny s jinou 128bitovou hodnotou na základě výsledku porovnání. |
InterlockedCompareExchangePointer | Provede atomovou operaci porovnání a výměny zadaných hodnot ukazatele. Funkce porovnává dvě zadané hodnoty ukazatele a vymění se jinou hodnotou ukazatele na základě výsledku porovnání. |
InterlockedCompareExchangePointerAcquire | Provede atomovou operaci porovnání a výměny zadaných hodnot ukazatele. Funkce porovnává dvě zadané hodnoty ukazatele a vymění se jinou hodnotou ukazatele na základě výsledku porovnání. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedCompareExchangePointerRelease | Provede atomovou operaci porovnání a výměny zadaných hodnot ukazatele. Funkce porovnává dvě zadané hodnoty ukazatele a vymění se jinou hodnotou ukazatele na základě výsledku porovnání. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedCompareExchangePointerNoFence | Provede atomovou operaci porovnání a výměny zadaných hodnot. Funkce porovnává dvě zadané hodnoty ukazatele a vymění se jinou hodnotou ukazatele na základě výsledku porovnání. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedDecrement | Sníží hodnotu zadané 32bitové proměnné jako atomické operace (zmenší o jeden). |
InterlockedDecrementAcquire | Sníží hodnotu zadané 32bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedDecrementRelease | Sníží hodnotu zadané 32bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedDecrementNoFence | Sníží hodnotu zadané 32bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedDecrement16 | Dekrementuje (sníží o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. |
InterlockedDecrement16Acquire | Sníží hodnotu zadané 16bitové proměnné jako atomické operace (zmenší o jednu). Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedDecrement16Release | Sníží hodnotu zadané 16bitové proměnné jako atomické operace (zmenší o jednu). Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedDecrement16NoFence | Sníží hodnotu zadané 16bitové proměnné jako atomické operace (zmenší o jednu). Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedDecrement64 | Sníží hodnotu zadané 64bitové proměnné jako atomické operace (zmenší o jeden). |
InterlockedDecrementAcquire64 | Sníží hodnotu zadané 64bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedDecrementRelease64 | Sníží hodnotu zadané 64bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedDecrementNoFence64 | Sníží hodnotu zadané 64bitové proměnné jako atomické operace (zmenší o jeden). Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchange | Nastaví 32bitovou proměnnou na zadanou hodnotu jako atomické operace. |
InterlockedExchangeAcquire | Nastaví 32bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedExchangeNoFence | Nastaví 64bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchange8 | Nastaví 8bitovou proměnnou na zadanou hodnotu jako atomické operace. |
InterlockedExchange16 | Nastaví 16bitovou proměnnou na zadanou hodnotu jako atomické operace. |
InterlockedExchange16Acquire | Nastaví 16bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti získání paměti. |
InterlockedExchange16NoFence | Nastaví 16bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchange64 | Nastaví 64bitovou proměnnou na zadanou hodnotu jako atomické operace. |
InterlockedExchangeAcquire64 | Nastaví 32bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedExchangeNoFence64 | Nastaví 64bitovou proměnnou na zadanou hodnotu jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchangePointer | Atomicky vyměňuje dvojici hodnot ukazatele. |
InterlockedExchangePointerAcquire | Atomicky vyměňuje dvojici hodnot ukazatele. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedExchangePointerNoFence | Atomicky vyměňuje dvojici adres. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchangeSubtract | Provede atomický odčítání dvou hodnot. |
InterlockedExchangeAdd | Provede atomické sčítání dvou 32bitových hodnot. |
InterlockedExchangeAddAcquire | Provede atomické sčítání dvou 32bitových hodnot. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedExchangeAddRelease | Provede atomické sčítání dvou 32bitových hodnot. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedExchangeAddNoFence | Provede atomické sčítání dvou 32bitových hodnot. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedExchangeAdd64 | Provede atomické sčítání dvou 64bitových hodnot. |
InterlockedExchangeAddAcquire64 | Provede atomické sčítání dvou 64bitových hodnot. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedExchangeAddRelease64 | Provede atomické sčítání dvou 64bitových hodnot. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedExchangeAddNoFence64 | Provede atomické sčítání dvou 64bitových hodnot. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedIncrement | Zvýší (zvýší o jednu) hodnotu zadané 32bitové proměnné jako atomické operace. |
InterlockedIncrementAcquire | Zvýší (zvýší o jednu) hodnotu zadané 32bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti. |
InterlockedIncrementRelease | Zvýší (zvýší o jednu) hodnotu zadané 32bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti vydané verze. |
InterlockedIncrementNoFence | Zvýší (zvýší o jednu) hodnotu zadané 32bitové proměnné jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedIncrement16 | Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. |
InterlockedIncrement16Acquire | Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti získání paměti. |
InterlockedIncrement16Release | Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti vydané verze. |
InterlockedIncrement16NoFence | Zvýší (zvýší o jednu) hodnotu zadané 16bitové proměnné jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedIncrement64 | Zvýší (zvýší o jednu) hodnotu zadané 64bitové proměnné jako atomické operace. |
InterlockedIncrementAcquire64 | Zvýší (zvýší o jednu) hodnotu zadané 64bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti. |
InterlockedIncrementRelease64 | Zvýší (zvýší o jednu) hodnotu zadané 64bitové proměnné jako atomické operace. Operace se provádí pomocí sémantiky řazení paměti vydané verze. |
InterlockedIncrementNoFence64 | Zvýší (zvýší o jednu) hodnotu zadané 64bitové proměnné jako atomické operace. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedOr | Provede atomické operace OR se zadanými hodnotami LONG. |
InterlockedOrAcquire | Provede atomické operace OR se zadanými hodnotami LONG. Operace se provádí s využitím sémantiky řazení paměti. |
interlockedOrRelease | Provede atomické operace OR se zadanými hodnotami LONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedOrNoFence | Provede atomické operace OR se zadanými hodnotami LONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedOr8 | Provede nedělitou operaci OR na zadaných hodnotách znaku. |
InterlockedOr8Acquire | Provede nedělitou operaci OR na zadaných hodnotách znaku. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedOr8Release | Provede nedělitou operaci OR na zadaných hodnotách znaku. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedOr8NoFence | Provede nedělitou operaci OR na zadaných hodnotách znaku. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedOr16 | Provede atomické operace OR se zadanými hodnotami SHORT. |
InterlockedOr16Acquire | Provede atomické operace OR se zadanými hodnotami SHORT. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedOr16Release | Provede atomické operace OR se zadanými hodnotami SHORT. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedOr16NoFence | Provede atomické operace OR se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér |
interlockedOr64 | Provede atomické operace OR se zadanými hodnotami LONGLONG. |
InterlockedOr64Acquire | Provede atomické operace OR se zadanými hodnotami LONGLONG. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedOr64Release | Provede atomické operace OR se zadanými hodnotami LONGLONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedOr64NoFence | Provede atomické operace OR se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedXor | Provede atomický XOR operace se zadanými hodnotami LONG. |
InterlockedXorAcquire | Provede atomický XOR operace se zadanými hodnotami LONG. Operace se provádí s využitím sémantiky řazení paměti. |
interlockedXorRelease | Provede atomický XOR operace se zadanými hodnotami LONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedXorNoFence | Provede atomický XOR operace se zadanými hodnotami LONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedXor8 | Provede atomické operace XOR na zadaných char hodnoty. |
InterlockedXor8Acquire | Provede atomické operace XOR na zadaných char hodnoty. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedXor8Release | Provede atomické operace XOR na zadaných char hodnoty. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedXor8NoFence | Provede atomické operace XOR na zadaných char hodnoty. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedXor16 | Provede atomický XOR operace se zadanými hodnotami SHORT. |
InterlockedXor16Acquire | Provede atomický XOR operace se zadanými hodnotami SHORT. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedXor16Release | Provede atomický XOR operace se zadanými hodnotami SHORT. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedXor16NoFence | Provede atomický XOR operace se zadanými hodnotami SHORT. Operace se provádí atomicky, ale bez použití paměťových bariér |
InterlockedXor64 | Provede atomic XOR operace se zadanými hodnotami LONGLONG. |
InterlockedXor64Acquire | Provede atomic XOR operace se zadanými hodnotami LONGLONG. Operace se provádí s využitím sémantiky řazení paměti. |
InterlockedXor64Release | Provede atomic XOR operace se zadanými hodnotami LONGLONG. Operace se provádí sémantikou řazení paměti vydané verze. |
InterlockedXor64NoFence | Provede atomic XOR operace se zadanými hodnotami LONGLONG. Operace se provádí atomicky, ale bez použití paměťových bariér |
Funkce Mutex
Mutex | Popis |
---|---|
CreateMutex | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt mutex. |
CreateMutexEx | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt mutex a vrátí popisovač objektu. |
OpenMutex | Otevře existující pojmenovaný objekt mutex. |
releaseMutex | Uvolní vlastnictví zadaného objektu mutex. |
Funkce privátního oboru názvů
Funkce privátního oboru názvů | Popis |
---|---|
AddSIDToBoundaryDescriptor | Přidá nový identifikátor zabezpečení (SID) do zadaného popisovače hranic. |
AddIntegrityLabelToBoundaryDescriptor | Přidá nový požadovaný identifikátor zabezpečení (SID) do zadaného popisovače hranic. |
ClosePrivateNamespace | Zavře otevřený popisovač oboru názvů. |
CreateBoundaryDescriptor | Vytvoří popisovač hranic. |
CreatePrivateNamespace | Vytvoří privátní obor názvů. |
DeleteBoundaryDescriptor | Odstraní zadaný popisovač hranic. |
OpenPrivateNamespace | Otevře privátní obor názvů. |
Funkce semaforu
Semaphore | Popis |
---|---|
CreateSemaphore | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt semaphore. |
CreateSemaphoreEx | Vytvoří nebo otevře pojmenovaný nebo nepojmenovaný objekt semaphore a vrátí popisovač objektu. |
OpenSemaphore | Otevře existující pojmenovaný objekt semaphore. |
releaseSemaphore | Zvýší počet zadaného objektu semaphore o zadanou částku. |
Funkce seznamu s ingly propojenými funkcemi
Singly propojená funkce seznamu | Popis |
---|---|
InitializeSListHead | Inicializuje hlavu singly propojeného seznamu. |
InterlockedFlushSList | Vyprázdní celý seznam položek v ingly propojeném seznamu. |
InterlockedPopEntrySList | Odebere položku z přední části ingly propojeného seznamu. |
InterlockedPushEntrySList | Vloží položku před ingly propojený seznam. |
InterlockedPushListSList | Vloží ingly propojený seznam na přední straně jiného ingly propojeného seznamu. |
InterlockedPushListSListEx | Vloží ingly propojený seznam na přední straně jiného ingly propojeného seznamu. Přístup k seznamům se synchronizuje v multiprocesorovém systému. Tato verze metody nepoužívá konvenci volání __fastcall. |
queryDepthSList | Načte počet položek v zadaném ingly propojeném seznamu. |
RtlFirstEntrySList | Načte první položku v ingly propojeném seznamu. |
RtlInitializeSListHead | Inicializuje hlavu singly propojeného seznamu. Aplikace by měly místo toho volat InitializeSListHead. |
RtlInterlockedFlushSList | Vyprázdní celý seznam položek v ingly propojeném seznamu. Aplikace by měly místo toho volat InterlockedFlushSList. |
RtlInterlockedPopEntrySList | Odebere položku z přední části ingly propojeného seznamu. Aplikace by měly místo toho volat InterlockedPopEntrySList. |
RtlInterlockedPushEntrySList | Vloží položku před ingly propojený seznam. Aplikace by měly místo toho volat InterlockedPushEntrySList. |
rtlQueryDepthSList | Načte počet položek v zadaném ingly propojeném seznamu. Aplikace by místo toho měly volat QueryDepthSList. |
Synchronizační bariérové funkce
Synchronizační bariérová funkce | Popis |
---|---|
DeleteSynchronizationBarrier | Odstraní synchronizační bariéru. |
EnterSynchronizationBarrier | Přejde do synchronizační bariéry a počká na odpovídající počet vláken, které se na bariérě znovu prosadí. |
initializeSynchronizationBarrier | Inicializuje novou synchronizační bariéru. |
Funkce časovače časovače ve frontě časovače
Funkce časovače časovače fronty časovače | Popis |
---|---|
ChangeTimerQueueTimer | Aktualizuje časovač fronty. |
CreateTimerQueue | Vytvoří frontu pro časovače. |
CreateTimerQueueTimer | Vytvoří časovač fronty časovače. |
DeleteTimerQueue | Odstraní frontu časovače. |
DeleteTimerQueueEx | Odstraní frontu časovače. |
DeleteTimerQueueTimer | Zruší časovač fronty časovače. |
Funkce čekání
Wait – funkce | Popis |
---|---|
msgWaitForMultipleObjects | Čeká, dokud jeden nebo všechny zadané objekty nejsou v signalovaném stavu nebo uplynul časový limit intervalu. Objekty mohou zahrnovat vstupní objekty událostí. |
MsgWaitForMultipleObjectsEx | Čeká, dokud jeden nebo všechny zadané objekty nejsou v signalovaném stavu, rutina dokončení vstupně-výstupní operace nebo asynchronní volání procedury (APC) se zařadí do fronty do vlákna nebo uplynul časový limit intervalu. Pole objektů může zahrnovat vstupní objekty událostí. |
RegisterWaitForSingleObject | Nasměruje vlákno čekání ve fondu vláken, aby čekalo na objekt. |
SignalObjectAndWait | Signalizuje jeden objekt a čeká na jiný objekt jako jednu operaci. |
UnregisterWait | Zruší zaregistrovanou operaci čekání. |
UnregisterWaitEx | Zruší zaregistrovanou operaci čekání. |
WaitForMultipleObjects | Čeká, dokud jeden nebo všechny zadané objekty nejsou v signalovaném stavu nebo uplynul časový limit intervalu. |
WaitForMultipleObjectsEx | Čeká, dokud jeden nebo všechny zadané objekty nejsou v signalovaném stavu, rutina dokončení vstupně-výstupní operace nebo asynchronní volání procedury (APC) se zařadí do fronty do vlákna nebo uplynul časový limit intervalu. |
WaitForSingleObject | Čeká, dokud zadaný objekt není v signalovaném stavu nebo uplynul časový limit. |
WaitForSingleObjectEx | Počká, dokud zadaný objekt není v signalovaném stavu, do fronty se zařadí rutina vstupně-výstupního dokončení nebo asynchronní volání procedury (APC) do vlákna nebo časový limit uplynul. |
WaitOnAddress | Čeká na změnu hodnoty na zadané adrese. |
WaitOrTimerCallback | Funkce definovaná aplikací, která slouží jako počáteční adresa pro zpětné volání časovače nebo registrované zpětné volání čekání. |
WakeByAddressAll | Probouzí všechna vlákna čekající na změnu hodnoty adresy. |
WakeByAddressSingle | Probudí vlákno čekající na změnu hodnoty adresy. |
Funkce čekaného časovače
Funkce čekaného časovače | Popis |
---|---|
CancelWaitableTimer | Nastaví zadaný čekaný časovač na neaktivní stav. |
createWaitableTimer | Vytvoří nebo otevře objekt čekaného časovače. |
CreateWaitableTimerEx | Vytvoří nebo otevře objekt čekaného časovače a vrátí popisovač objektu. |
openWaitableTimer | Otevře existující pojmenovaný objekt časovače s možností čekání. |
SetWaitableTimer | Aktivuje zadaný čekaný časovač. |
SetWaitableTimerEx | Aktivuje zadaný časovač s možností čekání a poskytne informace o kontextu časovače. . |
timerAPCProc | Rutina dokončování časovače definovaná aplikací použitá s funkcí SetWaitableTimer. |