Funkcje synchronizacji
Następujące funkcje są używane podczas synchronizacji.
- funkcje asynchroniczne
- zmiennej warunku i funkcji blokady SRW
- funkcje sekcji Krytyczne
- funkcji zdarzeń
- jednorazowe funkcje inicjowania
- funkcji połączonych
- funkcje Mutex
- funkcje prywatnej przestrzeni nazw
- funkcje Semaphore
- funkcje listy połączonej singly
- funkcje barier synchronizacji
- funkcje czasomierza kolejki czasomierza
- funkcje Wait
- funkcje czasomierza waitable-timer
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. |