Udostępnij za pośrednictwem


Funkcje synchronizacji

Następujące funkcje są używane podczas synchronizacji.

Funkcje asynchroniczne

Funkcja asynchroniczna Opis
APCProc Funkcja wywołania zwrotnego zdefiniowana przez aplikację używana z funkcjąQueueUserAPC.
GetOverlappedResult Pobiera wyniki nakładanej operacji.
GetOverlappedResultEx Pobiera wyniki nakładanej operacji w określonym przedziale czasu.
QueueUserAPC Dodaje obiekt asynchronicznej procedury trybu użytkownika (APC) do kolejki APC określonego wątku.

 

Zmienne warunku i funkcje blokady SRW

Zmienna warunku i funkcja blokady SRW Opis
acquireSRWLockExclusive Uzyskuje szczupłą blokadę czytnika/zapisywania (SRW) w trybie wyłącznym.
AcquireSRWLockShared Uzyskuje szczupłą blokadę czytnika/zapisywania (SRW) w trybie udostępnionym.
initializeConditionVariable Inicjuje zmienną warunku.
InitializeSRWLock Zainicjuj szczupłą blokadę czytnika/zapisywania (SRW).
ReleaseSRWLockExclusive Zwalnia szczupłą blokadę czytnika/zapisywania (SRW), która została nabyta w trybie wyłącznym.
ReleaseSRWLockShared Zwalnia szczupłą blokadę czytnika/modułu zapisywania (SRW), która została uzyskana w trybie udostępnionym.
SleepConditionVariableCS Uśpienie w określonej zmiennej warunku i zwalnia określoną sekcję krytyczną jako operację niepodzielna.
SleepConditionVariableSRW Uśpienie dla określonej zmiennej warunku i zwalnia określoną blokadę jako operację niepodzielna.
TryAcquireSRWLockExclusive Próbuje uzyskać szczupłą blokadę czytnika/pisarza (SRW) w trybie wyłącznym. Jeśli wywołanie zakończy się pomyślnie, wątek wywołujący przejmuje własność blokady.
TryAcquireSRWLockShared Próbuje uzyskać szczupłą blokadę czytnika/zapisywania (SRW) w trybie udostępnionym. Jeśli wywołanie zakończy się pomyślnie, wątek wywołujący przejmuje własność blokady.
WakeAllConditionVariable Wznawianie wszystkich wątków oczekujących na określoną zmienną warunku.
WakeConditionVariable Wznawianie oczekiwania na jeden wątek dla określonej zmiennej warunku.

 

Funkcje sekcji krytycznej

Funkcja sekcji krytycznej Opis
DeleteCriticalSection Zwalnia wszystkie zasoby używane przez nieowny obiekt sekcji krytycznej.
EnterCriticalSection Czeka na własność określonego obiektu sekcji krytycznej.
InitializeCriticalSection Inicjuje obiekt sekcji krytycznej.
InitializeCriticalSectionAndSpinCount Inicjuje obiekt sekcji krytycznej i ustawia liczbę spinów dla sekcji krytycznej.
InitializeCriticalSectionEx Inicjuje obiekt sekcji krytycznej z liczbą spin i opcjonalnymi flagami.
LeaveCriticalSection Zwalnia własność określonego obiektu sekcji krytycznej.
SetCriticalSectionSpinCount Ustawia liczbę spinów dla określonej sekcji krytycznej.
TryEnterCriticalSection Próbuje wprowadzić sekcję krytyczną bez blokowania.

 

Funkcje zdarzeń

Funkcja zdarzenia Opis
CreateEvent Tworzy lub otwiera nazwany lub nienazwany obiekt zdarzenia.
CreateEventEx Tworzy lub otwiera nazwany lub nienazwany obiekt zdarzenia i zwraca uchwyt do obiektu.
OpenEvent Otwiera istniejący nazwany obiekt zdarzenia.
PulseEvent Ustawia określony obiekt zdarzenia na stan zasygnalizowany, a następnie resetuje go do stanu niepodpisanego po zwolnieniu odpowiedniej liczby wątków oczekujących.
ResetEvent Ustawia określony obiekt zdarzenia na stan niepodpisany.
SetEvent Ustawia określony obiekt zdarzenia na stan zasygnalizowany.

 

Funkcje inicjowania jednorazowego

Jednorazowa funkcja inicjowania Opis
InitOnceBeginInitialize Rozpoczyna jednorazową inicjację.
InitOnceComplete Kończy jednorazową inicjację.
InitOnceExecuteOnceOnce Wykonuje określoną funkcję jeden raz. Żadne inne wątki, które określają tę samą strukturę inicjowania jednorazowego, mogą wykonać tę funkcję, gdy jest wykonywana przez bieżący wątek.
InitOnceInitialize Inicjuje jednorazową strukturę inicjowania.

 

Funkcje połączone

Interlocked, funkcja Opis
InterlockedAdd Wykonuje niepodzielne operacje dodawania dla określonych wartości LONG.
InterlockedAddAcquire Wykonuje niepodzielne operacje dodawania dla określonych wartości LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAddRelease Wykonuje niepodzielne operacje dodawania dla określonych wartości LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAddNoFence Wykonuje niepodzielne operacje dodawania dla określonych wartości LONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedAdd64 Wykonuje niepodzielne operacje dodawania dla określonych wartości LONGLONG.
InterlockedAddAcquire64 Wykonuje niepodzielne operacje dodawania dla określonych wartości LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAddRelease64 Wykonuje niepodzielne operacje dodawania dla określonych wartości LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAddNoFence64 Wykonuje niepodzielne operacje dodawania dla określonych wartości LONGLONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedAnd Wykonuje niepodzielne operacje AND na określonych wartościach LONG.
InterlockedAndAcquire Wykonuje niepodzielne operacje AND na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAndRelease Wykonuje niepodzielne operacje AND na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAndNoFence Wykonuje niepodzielne operacje AND na określonych wartościach LONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedAnd8 Wykonuje niepodzielne operacje AND na określonych wartościach char.
InterlockedAnd8Acquire Wykonuje niepodzielne operacje AND na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAnd8Release Wykonuje niepodzielne operacje AND na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAnd8NoFence Wykonuje niepodzielne operacje AND na określonych wartościach char. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedAnd16 Wykonuje niepodzielne operacje AND na określonych wartościach SHORT.
InterlockedAnd16Acquire Wykonuje niepodzielne operacje AND na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAnd16Release Wykonuje niepodzielne operacje AND na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAnd16NoFence Wykonuje niepodzielne operacje AND na określonych wartościach SHORT. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedAnd64 Wykonuje niepodzielne operacje AND na określonych wartości LONGLONG.
InterlockedAnd64Acquire Wykonuje niepodzielne operacje AND na określonych wartości LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedAnd64Release Wykonuje niepodzielne operacje AND na określonych wartości LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedAnd64NoFence Wykonuje niepodzielne operacje AND na określonych wartości LONGLONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedBitTestAndComplement Sprawdza określony bit określonej wartości LONG i uzupełnia go.
InterlockedBitTestAndComplement64 Sprawdza określony bit określonej wartości LONG64 i uzupełnia go. Operacja jest niepodzielna
InterlockedBitTestAndResetAcquire Testuje określony bit określonej wartości LONG i ustawia go na 0. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedBitTestAndResetRelease Testuje określony bit określonej wartości LONG i ustawia go na 0. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki wydań pamięci
InterlockedBitTestAndSetAcquire Sprawdza określony bit określonej wartości LONG i ustawia go na 1. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedBitTestAndSetRelease Sprawdza określony bit określonej wartości LONG i ustawia go na 1. Operacja jest niepodzielna i jest wykonywana przy użyciu semantyki porządkowania pamięci wydania
InterlockedBitTestAndReset Testuje określony bit określonej wartości LONG i ustawia go na 0.
InterlockedBitTestAndReset64 Testuje określony bit określonej wartości LONG64 i ustawia go na 0.
InterlockedBitTestAndSet Sprawdza określony bit określonej wartości LONG i ustawia go na 1.
InterlockedBitTestAndSet64 Sprawdza określony bit określonej wartości LONG64 i ustawia go na 1.
InterlockedCompare64Exchange128 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje określone wartości 64-bitowe i wymienia się z określoną wartością 128-bitową na podstawie wyniku porównania.
InterlockedCompare64ExchangeAcquire128 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje określone wartości 64-bitowe i wymienia się z określoną wartością 128-bitową na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedCompare64ExchangeRelease128 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje określone wartości 64-bitowe i wymienia się z określoną wartością 128-bitową na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedCompareExchange Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 32-bitowe i wymienia się z inną wartością 32-bitową na podstawie wyniku porównania.
InterlockedCompareExchangeAcquire Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 32-bitowe i wymienia się z inną wartością 32-bitową na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedCompareExchangeRelease Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 32-bitowe i wymienia się z inną wartością 32-bitową na podstawie wyniku porównania. Wymiana jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedCompareExchangeNoFence Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 32-bitowe i wymienia się z inną wartością 32-bitową na podstawie wyniku porównania. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedCompareExchange64 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 64-bitowe i wymienia się z inną wartością 64-bitową na podstawie wyniku porównania.
InterlockedCompareExchangeAcquire64 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 64-bitowe i wymienia się z inną wartością 64-bitową na podstawie wyniku porównania. Wymiana jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedCompareExchangeRelease64 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 64-bitowe i wymienia się z inną wartością 64-bitową na podstawie wyniku porównania. Wymiana jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedCompareExchangeNoFence64 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 64-bitowe i wymienia się z inną wartością 64-bitową na podstawie wyniku porównania. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedCompareExchange16 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania
InterlockedCompareExchange16Acquire Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedCompareExchange16Release Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Wymiana jest wykonywana przy użyciu semantyki porządkowania pamięci wydania
InterlockedCompareExchange16NoFence Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 16-bitowe i wymienia się z inną wartością 16-bitową na podstawie wyniku porównania. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedCompareExchange128 Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości 128-bitowe i wymienia się z inną wartością 128-bitową na podstawie wyniku porównania
InterlockedCompareExchangePointer Wykonuje niepodzielne operacje porównywania i wymiany dla określonych wartości wskaźnika. Funkcja porównuje dwie określone wartości wskaźnika i wymienia się z inną wartością wskaźnika na podstawie wyniku porównania.
InterlockedCompareExchangePointerAcquire Wykonuje niepodzielne operacje porównywania i wymiany dla określonych wartości wskaźnika. Funkcja porównuje dwie określone wartości wskaźnika i wymienia się z inną wartością wskaźnika na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedCompareExchangePointerRelease Wykonuje niepodzielne operacje porównywania i wymiany dla określonych wartości wskaźnika. Funkcja porównuje dwie określone wartości wskaźnika i wymienia się z inną wartością wskaźnika na podstawie wyniku porównania. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedCompareExchangePointerNoFence Wykonuje niepodzielne operacje porównywania i wymiany na określonych wartościach. Funkcja porównuje dwie określone wartości wskaźnika i wymienia się z inną wartością wskaźnika na podstawie wyniku porównania. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedDecrement Zmniejsza (zmniejsza się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna.
InterlockedDecrementAcquirere Zmniejsza (zmniejsza się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedDecrementRelease Zmniejsza (zmniejsza się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedDecrementNoFence Zmniejsza (zmniejsza się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedDecrement16 Dekrementacje (zmniejsza się o jedną) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna
InterlockedDecrement16Acquirere Dekrementuje (zmniejsza się o jeden) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedDecrement16Release Dekrementuje (zmniejsza się o jeden) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania
InterlockedDecrement16NoFence Dekrementuje (zmniejsza się o jeden) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedDecrement64 Dekrementuje (zmniejsza się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna.
InterlockedDecrementAcquire64 Dekrementuje (zmniejsza się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedDecrementRelease64 Dekrementuje (zmniejsza się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedDecrementNoFence64 Dekrementuje (zmniejsza się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchange Ustawia zmienną 32-bitową na określoną wartość jako operację niepodzieną.
InterlockedExchangeAcquire Ustawia zmienną 32-bitową na określoną wartość jako operację niepodzieną. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedExchangeNoFence Ustawia zmienną 64-bitową na określoną wartość jako operację niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchange8 Ustawia zmienną 8-bitową na określoną wartość jako operację niepodzieną
InterlockedExchange16 Ustawia zmienną 16-bitową na określoną wartość jako operację niepodzieną.
InterlockedExchange16Acquire Ustawia zmienną 16-bitową na określoną wartość jako operację niepodzieną. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedExchange16NoFence Ustawia zmienną 16-bitową na określoną wartość jako operację niepodzieną. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchange64 Ustawia zmienną 64-bitową na określoną wartość jako operację niepodzielna.
InterlockedExchangeAcquire64 Ustawia zmienną 32-bitową na określoną wartość jako operację niepodzieną. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedExchangeNoFence64 Ustawia zmienną 64-bitową na określoną wartość jako operację niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchangePointer Niepodzielna wymiana pary wartości wskaźnika.
InterlockedExchangePointerAcquire Niepodzielna wymiana pary wartości wskaźnika. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedExchangePointerNoFence Niepodzielna wymiana pary adresów. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchangeSubtract Wykonuje niepodzielne odejmowanie dwóch wartości.
InterlockedExchangeAdd Wykonuje niepodzielne dodanie dwóch wartości 32-bitowych.
InterlockedExchangeAddAcquire Wykonuje niepodzielne dodanie dwóch wartości 32-bitowych. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedExchangeAddRelease Wykonuje niepodzielne dodanie dwóch wartości 32-bitowych. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedExchangeAddNoFence Wykonuje niepodzielne dodanie dwóch wartości 32-bitowych. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedExchangeAdd64 Wykonuje niepodzielne dodanie dwóch wartości 64-bitowych.
InterlockedExchangeAddAcquire64 Wykonuje niepodzielne dodanie dwóch wartości 64-bitowych. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedExchangeAddRelease64 Wykonuje niepodzielne dodanie dwóch wartości 64-bitowych. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedExchangeAddNoFence64 Wykonuje niepodzielne dodanie dwóch wartości 64-bitowych. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedIncrement Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna.
InterlockedIncrementAcquire Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedIncrementRelease Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedIncrementNoFence Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 32-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedIncrement16 Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna
InterlockedIncrement16Acquire Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci
InterlockedIncrement16Release Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania
InterlockedIncrement16NoFence Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 16-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedIncrement64 Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna.
InterlockedIncrementAcquire64 Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedIncrementRelease64 Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedIncrementNoFence64 Przyrosty (zwiększa się o jedną) wartość określonej zmiennej 64-bitowej jako operacja niepodzielna. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedOr Wykonuje niepodzielne operacje OR na określonych wartościach LONG.
InterlockedOrAcquire Wykonuje niepodzielne operacje OR na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedOrRelease Wykonuje niepodzielne operacje OR na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedOrNoFence Wykonuje niepodzielne operacje OR na określonych wartościach LONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedOr8 Wykonuje niepodzielne operacje OR na określonych wartościach char.
InterlockedOr8Acquire Wykonuje niepodzielne operacje OR na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedOr8Release Wykonuje niepodzielne operacje OR na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedOr8NoFence Wykonuje niepodzielne operacje OR na określonych wartościach char. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedOr16 Wykonuje niepodzielne operacje OR na określonych wartościach SHORT.
InterlockedOr16Acquire Wykonuje niepodzielne operacje OR na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedOr16Release Wykonuje niepodzielne operacje OR na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedOr16NoFence Wykonuje niepodzielne operacje OR na określonych wartościach SHORT. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedOr64 Wykonuje niepodzielne operacje OR na określonych wartościach LONGLONG.
InterlockedOr64Acquire Wykonuje niepodzielne operacje OR na określonych wartościach LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedOr64Release Wykonuje niepodzielne operacje OR na określonych wartościach LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedOr64NoFence Wykonuje niepodzielne operacje OR na określonych wartościach LONGLONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedXor Wykonuje niepodzielne operacje XOR na określonych wartościach LONG.
InterlockedXorAcquire Wykonuje niepodzielne operacje XOR na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedXorRelease Wykonuje niepodzielne operacje XOR na określonych wartościach LONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedXorNoFence Wykonuje niepodzielne operacje XOR na określonych wartościach LONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedXor8 Wykonuje niepodzielne operacje XOR na określonych wartościach char.
InterlockedXor8Acquire Wykonuje niepodzielne operacje XOR na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedXor8Release Wykonuje niepodzielne operacje XOR na określonych wartościach char. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedXor8NoFence Wykonuje niepodzielne operacje XOR na określonych wartościach char. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedXor16 Wykonuje niepodzielne operacje XOR na określonych wartościach SHORT.
InterlockedXor16Acquire Wykonuje niepodzielne operacje XOR na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedXor16Release Wykonuje niepodzielne operacje XOR na określonych wartościach SHORT. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedXor16NoFence Wykonuje niepodzielne operacje XOR na określonych wartościach SHORT. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci
InterlockedXor64 Wykonuje niepodzielne operacje XOR na określonych wartościach LONGLONG.
InterlockedXor64Acquire Wykonuje niepodzielne operacje XOR na określonych wartościach LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci.
InterlockedXor64Release Wykonuje niepodzielne operacje XOR na określonych wartościach LONGLONG. Operacja jest wykonywana przy użyciu semantyki porządkowania pamięci wydania.
InterlockedXor64NoFence Wykonuje niepodzielne operacje XOR na określonych wartościach LONGLONG. Operacja jest wykonywana niepodziealnie, ale bez użycia barier pamięci

 

Funkcje Mutex

Mutex, funkcja Opis
createMutex Tworzy lub otwiera nazwany lub nienazwany obiekt mutex.
CreateMutexEx Tworzy lub otwiera nazwany lub nienazwany obiekt mutex i zwraca uchwyt do obiektu.
OpenMutex Otwiera istniejący nazwany obiekt mutex.
ReleaseMutex Zwalnia własność określonego obiektu mutex.

 

Funkcje prywatnej przestrzeni nazw

Funkcja prywatnej przestrzeni nazw Opis
addSIDToBoundaryDescriptor Dodaje nowy identyfikator zabezpieczeń (SID) do określonego deskryptora granic.
AddIntegrityLabelToBoundaryDescriptor Dodaje nowy wymagany identyfikator zabezpieczeń (SID) do określonego deskryptora granic.
ClosePrivateNamespace Zamyka otwartą przestrzeń nazw.
CreateBoundaryDescriptor Tworzy deskryptor granic.
createPrivateNamespace Tworzy prywatną przestrzeń nazw.
DeleteBoundaryDescriptor Usuwa określony deskryptor granic.
OpenPrivateNamespace Otwiera prywatną przestrzeń nazw.

 

Funkcje semafora

Semaphore, funkcja Opis
CreateSemaphore Tworzy lub otwiera nazwany lub nienazwany obiekt semaphore.
CreateSemaphoreEx Tworzy lub otwiera nazwany lub nienazwany obiekt semaphore i zwraca uchwyt do obiektu.
OpenSemaphore Otwiera istniejący obiekt semaphore.
ReleaseSemaphore Zwiększa liczbę określonego obiektu semafora o określoną ilość.

 

Funkcje listy połączonej singly

Funkcja listy połączonej singly Opis
initializeSListHead Inicjuje głowę singly połączonej listy.
InterlockedFlushSList Opróżnia całą listę elementów na połączonej liście.
interlockedPopEntrySList Usuwa element z przodu połączonej listy.
InterlockedPushEntrySList Wstawia element na początku połączonej listy.
InterlockedPushListSList Wstawia singly-linked list na początku innej singly połączonej listy.
InterlockedPushListSListEx Wstawia singly-linked list na początku innej singly połączonej listy. Dostęp do list jest synchronizowany w systemie wieloprocesorowym. Ta wersja metody nie używa __fastcall konwencji wywoływania
QueryDepthSList Pobiera liczbę wpisów na określonej liście połączonej singly.
RtlFirstEntrySList Pobiera pierwszy wpis na liście połączonej singly.
RtlInitializeSListHead Inicjuje głowę singly połączonej listy. Zamiast tego aplikacje powinny wywoływać InitializeSListHead.
RtlInterlockedFlushSList Opróżnia całą listę elementów na połączonej liście. Zamiast tego aplikacje powinny wywoływać InterlockedFlushSList.
RtlInterlockedPopEntrySList Usuwa element z przodu połączonej listy. Zamiast tego aplikacje powinny wywoływać InterlockedPopEntrySList.
RtlInterlockedPushEntrySList Wstawia element na początku połączonej listy. Zamiast tego aplikacje powinny wywoływać InterlockedPushEntrySList.
RtlQueryDepthSList Pobiera liczbę wpisów na określonej liście połączonej singly. Zamiast tego aplikacje powinny wywoływać QueryDepthSList.

 

Funkcje barier synchronizacji

Funkcja bariery synchronizacji Opis
DeleteSynchronizationBarrier Usuwa barierę synchronizacji.
EnterSynchronizationBarrier Wprowadza barierę synchronizacji i czeka, aż odpowiednia liczba wątków będzie się spotykać w barierze.
InitializeSynchronizationBarrier Inicjuje nową barierę synchronizacji.

 

Funkcje czasomierza kolejki czasomierza

Funkcja czasomierza kolejki czasomierza Opis
ChangeTimerQueueTimer Aktualizuje czasomierz kolejki czasomierza.
createTimerQueue Tworzy kolejkę dla czasomierzy.
createTimerQueueTimer Tworzy czasomierz kolejki czasomierza.
DeleteTimerQueue Usuwa kolejkę czasomierza.
DeleteTimerQueueEx Usuwa kolejkę czasomierza.
DeleteTimerQueueTimer Anuluje czasomierz kolejki czasomierza.

 

Funkcje oczekiwania

Wait, funkcja Opis
msgWaitForMultipleObjects Czeka, aż jeden lub wszystkie określone obiekty będą w stanie sygnalizowany lub upłynął interwał limitu czasu. Obiekty mogą zawierać wejściowe obiekty zdarzeń.
MsgWaitForMultipleObjectsEx Czeka, aż jeden lub wszystkie określone obiekty znajdują się w stanie sygnalizowanym, procedura ukończenia we/wy lub wywołanie procedury asynchronicznej (APC) jest kolejkowane do wątku lub interwał limitu czasu, który upłynął. Tablica obiektów może zawierać wejściowe obiekty zdarzeń.
RegisterWaitForSingleObject Kieruje wątek oczekiwania w puli wątków do oczekiwania na obiekt.
SignalObjectAndWait Sygnalizuje jeden obiekt i czeka na inny obiekt jako pojedynczą operację.
UnregisterWait Anuluje zarejestrowaną operację oczekiwania.
unregisterWaitEx Anuluje zarejestrowaną operację oczekiwania.
WaitForMultipleObjects Czeka, aż jeden lub wszystkie określone obiekty będą w stanie sygnalizowany lub upłynął interwał limitu czasu.
WaitForMultipleObjectsEx Czeka, aż jeden lub wszystkie określone obiekty znajdują się w stanie sygnalizowanym, procedura ukończenia we/wy lub wywołanie procedury asynchronicznej (APC) jest kolejkowane do wątku lub interwał limitu czasu, który upłynął.
WaitForSingleObject Czeka, aż określony obiekt będzie w stanie sygnału lub upłynął interwał limitu czasu.
WaitForSingleObjectEx Czeka, aż określony obiekt jest w stanie sygnalizowanym, procedura ukończenia we/wy lub wywołanie procedury asynchronicznej (APC) jest kolejkowane do wątku lub interwał limitu czasu upłynie.
WaitOnAddress Czeka na zmianę wartości pod określonym adresem.
WaitOrTimerCallback Funkcja zdefiniowana przez aplikację, która służy jako adres początkowy wywołania zwrotnego czasomierza lub zarejestrowane wywołanie zwrotne oczekiwania.
WakeByAddressAll Wznawia wszystkie wątki oczekujące na zmianę wartości adresu.
WakeByAddressSingle Wznawia wątek oczekujący na zmianę wartości adresu.

 

Funkcje czasomierza oczekiwania

Funkcja czasomierza oczekiwania Opis
CancelWaitableTimer Ustawia określony czasomierz oczekiwania na stan nieaktywny.
createWaitableTimer Tworzy lub otwiera obiekt czasomierza, który można czekać.
CreateWaitableTimerEx Tworzy lub otwiera obiekt czasomierza z możliwością oczekiwania i zwraca uchwyt do obiektu.
OpenWaitableTimer Otwiera istniejący obiekt czasomierza z możliwością oczekiwania.
SetWaitableTimer Aktywuje określony czasomierz oczekiwania.
SetWaitableTimerEx Aktywuje określony czasomierz oczekiwania i udostępnia informacje kontekstowe czasomierza. .
timerAPCProc Procedurę uzupełniania czasomierza zdefiniowaną przez aplikację używaną z funkcją SetWaitableTimer.