Synchronisierungsfunktionen

Die folgenden Funktionen werden bei der Synchronisierung verwendet.

Asynchrone Funktionen

Asynchrone Funktion BESCHREIBUNG
APCProc Eine anwendungsdefinierte Rückruffunktion, die mit der Funktion QueueUserAPC verwendet wird.
GetOverlappedResult Ruft die Ergebnisse eines überlappenden Vorgangs ab.
GetOverlappedResultEx Ruft die Ergebnisse eines überlappenden Vorgangs innerhalb eines angegebenen Timeoutintervalls ab.
QueueUserAPC Fügt der APC-Warteschlange des angegebenen Threads ein APC-Objekt (APC) im Benutzermodus hinzu.

 

Bedingungsvariable und SRW-Sperrfunktionen

Bedingungsvariable und SRW-Sperrfunktion BESCHREIBUNG
AcquireSRWLockExclusive Ruft eine SRW-Sperre (Slim Reader/Writer) im exklusiven Modus ab.
AcquireSRWLockShared Ruft eine SRW-Sperre (Slim Reader/Writer) im freigegebenen Modus ab.
InitializeConditionVariable Initialisiert eine Bedingungsvariable.
InitializeSRWLock Initialisieren Sie eine SRW-Sperre (Slim Reader/Writer).
ReleaseSRWLockExclusive Gibt eine SRW-Sperre (Slim Reader/Writer) frei, die im exklusiven Modus erworben wurde.
ReleaseSRWLockShared Gibt eine srW-Sperre (Slim Reader/Writer) frei, die im freigegebenen Modus abgerufen wurde.
SleepConditionVariableCS Schläft für die angegebene Bedingungsvariable und gibt den angegebenen kritischen Abschnitt als atomischen Vorgang frei.
SleepConditionVariableSRW Schläft für die angegebene Bedingungsvariable und gibt die angegebene Sperre als atomischen Vorgang frei.
TryAcquireSRWLockExclusive Versucht, eine SRW-Sperre (Slim Reader/Writer) im exklusiven Modus zu erhalten. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread die Sperre.
TryAcquireSRWLockShared Versucht, eine SRW-Sperre (Slim Reader/Writer) im freigegebenen Modus zu erhalten. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread die Sperre.
WakeAllConditionVariable Aktivieren Sie alle Threads, die auf die angegebene Bedingungsvariable warten.
WakeConditionVariable Aktivieren Sie einen einzelnen Thread, der auf die angegebene Bedingungsvariable wartet.

 

Wichtige Abschnittsfunktionen

Kritische Abschnittsfunktion BESCHREIBUNG
DeleteCriticalSection Gibt alle Ressourcen frei, die von einem nicht freigegebenen kritischen Abschnittsobjekt verwendet werden.
EnterCriticalSection Wartet auf den Besitz des angegebenen kritischen Abschnittsobjekts.
InitializeCriticalSection Initialisiert ein kritisches Abschnittsobjekt.
InitializeCriticalSectionAndSpinCount Initialisiert ein kritisches Abschnittsobjekt und legt die Anzahl der Drehungen für den kritischen Abschnitt fest.
InitializeCriticalSectionEx Initialisiert ein kritisches Abschnittsobjekt mit einer Drehzahl und optionalen Flags.
LeaveCriticalSection Gibt den Besitz des angegebenen kritischen Abschnittsobjekts frei.
SetCriticalSectionSpinCount Legt die Anzahl der Drehvorgänge für den angegebenen kritischen Abschnitt fest.
TryEnterCriticalSection Versucht, einen kritischen Abschnitt ohne Blockierung zu betreten.

 

Ereignisfunktionen

Ereignisfunktion BESCHREIBUNG
CreateEvent Erstellt oder öffnet ein benanntes oder unbenannte Ereignisobjekt.
CreateEventEx Erstellt oder öffnet ein benanntes oder unbenannte Ereignisobjekt und gibt ein Handle an das Objekt zurück.
OpenEvent Öffnet ein vorhandenes benanntes Ereignisobjekt.
PulseEvent Legt das angegebene Ereignisobjekt auf den signalierten Zustand fest und setzt es dann auf den nicht signalierten Zustand zurück, nachdem die entsprechende Anzahl von wartenden Threads freigegeben wurde.
ResetEvent Legt das angegebene Ereignisobjekt auf den nicht signalierten Zustand fest.
SetEvent Legt das angegebene Ereignisobjekt auf den signalierten Zustand fest.

 

Einmalige Initialisierungsfunktionen

Einmalinitialisierungsfunktion BESCHREIBUNG
InitOnceBeginInitialize Beginnt mit der einmaligen Initialisierung.
InitOnceComplete Schließt die einmalige Initialisierung ab.
InitOnceExecuteOnce Führt die angegebene Funktion einmal erfolgreich aus. Keine anderen Threads, die dieselbe einmalige Initialisierungsstruktur angeben, können diese Funktion ausführen, während sie vom aktuellen Thread ausgeführt wird.
InitOnceInitialize Initialisiert eine einmalige Initialisierungsstruktur.

 

Verriegelte Funktionen

Verriegelte Funktion BESCHREIBUNG
InterlockedAdd Führt einen atomaren Additionsvorgang für die angegebenen LONG-Werte aus.
InterlockedAddAcquire Führt einen atomaren Additionsvorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAddRelease Führt einen atomaren Additionsvorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAddNoFence Führt einen atomaren Additionsvorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedAdd64 Führt einen atomaren Additionsvorgang für die angegebenen LONGLONG-Werte aus.
InterlockedAddAcquire64 Führt einen atomaren Additionsvorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAddRelease64 Führt einen atomaren Additionsvorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAddNoFence64 Führt einen atomaren Additionsvorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedAnd Führt einen atomaren AND-Vorgang für die angegebenen LONG-Werte aus.
InterlockedAndAcquire Führt einen atomaren AND-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAndRelease Führt einen atomaren AND-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAndNoFence Führt einen atomaren AND-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedAnd8 Führt einen atomaren AND-Vorgang für die angegebenen Zeichenwerte aus .
InterlockedAnd8Acquire Führt einen atomaren AND-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAnd8Release Führt einen atomaren AND-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAnd8NoFence Führt einen atomaren AND-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedAnd16 Führt einen atomaren AND-Vorgang für die angegebenen SHORT-Werte aus.
InterlockedAnd16Acquire Führt einen atomaren AND-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAnd16Release Führt einen atomaren AND-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAnd16NoFence Führt einen atomaren AND-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedAnd64 Führt einen atomaren AND-Vorgang für die angegebenen LONGLONG-Werte aus.
InterlockedAnd64Acquire Führt einen atomaren AND-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedAnd64Release Führt einen atomaren AND-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedAnd64NoFence Führt einen atomaren AND-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedBitTestAndComplement Testet das angegebene Bit des angegebenen LONG-Werts und ergänzt ihn.
InterlockedBitTestAndComplement64 Testet das angegebene Bit des angegebenen LONG64-Werts und ergänzt ihn. Der Vorgang ist atomar
InterlockedBitTestAndResetAcquire Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 0 fest. Der Vorgang ist atomar, und er wird mit der Semantik der Speicherreihenfolge ausgeführt.
InterlockedBitTestAndResetRelease Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 0 fest. Der Vorgang ist atomar und wird mithilfe von Speicherfreigabesemantik ausgeführt.
InterlockedBitTestAndSetAcquire Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 1 fest. Der Vorgang ist atomar, und er wird mit der Semantik der Speicherreihenfolge ausgeführt.
InterlockedBitTestAndSetRelease Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 1 fest. Der Vorgang ist atomar und wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedBitTestAndReset Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 0 fest.
InterlockedBitTestAndReset64 Testet das angegebene Bit des angegebenen LONG64-Werts und legt ihn auf 0 fest.
InterlockedBitTestAndSet Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 1 fest.
InterlockedBitTestAndSet64 Testet das angegebene Bit des angegebenen LONG64-Werts und legt ihn auf 1 fest.
InterlockedCompare64Exchange128 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert aus.
InterlockedCompare64ExchangeAcquire128 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedCompare64ExchangeRelease128 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedCompareExchange Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert aus.
InterlockedCompareExchangeAcquire Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedCompareExchangeRelease Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert aus. Der Austausch wird mit der Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedCompareExchangeNoFence Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedCompareExchange64 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert aus.
InterlockedCompareExchangeAcquire64 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert aus. Der Austausch wird mit der Semantik der Speicherreihenfolge durchgeführt.
InterlockedCompareExchangeRelease64 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert aus. Der Austausch wird mit der Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedCompareExchangeNoFence64 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedCompareExchange16 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus.
InterlockedCompareExchange16Acquire Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedCompareExchange16Release Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Austausch erfolgt mit Semantik der Freigabespeicherreihenfolge
InterlockedCompareExchange16NoFence Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedCompareExchange128 Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 128-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 128-Bit-Wert aus.
InterlockedCompareExchangePointer Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen Zeigerwert aus.
InterlockedCompareExchangePointerAcquire Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen Zeigerwert aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedCompareExchangePointerRelease Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen Zeigerwert aus. Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedCompareExchangePointerNoFence Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen Zeigerwert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedDecrement Dekrementiert den Wert der angegebenen 32-Bit-Variablen als atomarer Vorgang (verringert um eins).
InterlockedDecrementAcquire Dekrementiert den Wert der angegebenen 32-Bit-Variablen als atomarer Vorgang (verringert um eins). Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedDecrementRelease Dekrementiert den Wert der angegebenen 32-Bit-Variablen als atomarer Vorgang (verringert um eins). Der Vorgang wird mit Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedDecrementNoFence Dekrementiert den Wert der angegebenen 32-Bit-Variablen als atomarer Vorgang (verringert um eins). Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedDecrement16 Dekrementiert (verringert um eins) den Wert der angegebenen 16-Bit-Variablen als atomarer Vorgang
InterlockedDecrement16Acquire Dekrementiert (verringert um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedDecrement16Release Dekrementiert (verringert um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedDecrement16NoFence Dekrementiert (verringert um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren
InterlockedDecrement64 Dekrementiert den Wert der angegebenen 64-Bit-Variablen als atomarer Vorgang( verringert) um eins.
InterlockedDecrementAcquire64 Dekrementiert den Wert der angegebenen 64-Bit-Variablen als atomarer Vorgang( verringert) um eins. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedDecrementRelease64 Verringert (verringert) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedDecrementNoFence64 Verringert (verringert) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchange Legt eine 32-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest.
InterlockedExchangeAcquire Legt eine 32-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedExchangeNoFence Legt eine 64-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchange8 Legt eine 8-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest.
InterlockedExchange16 Legt eine 16-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest.
InterlockedExchange16Acquire Legt eine 16-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird mithilfe der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
InterlockedExchange16NoFence Legt eine 16-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchange64 Legt eine 64-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest.
InterlockedExchangeAcquire64 Legt eine 32-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedExchangeNoFence64 Legt eine 64-Bit-Variable auf den angegebenen Wert als atomischen Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchangePointer Atomar tauscht ein Paar von Zeigerwerten aus.
InterlockedExchangePointerAcquire Atomar tauscht ein Paar von Zeigerwerten aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedExchangePointerNoFence Ein Adresspaar wird atomar ausgetauscht. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchangeSubtract Führt eine atomische Subtraktion von zwei Werten aus.
InterlockedExchangeAdd Führt eine atomare Addition von zwei 32-Bit-Werten aus.
InterlockedExchangeAddAcquire Führt eine atomare Addition von zwei 32-Bit-Werten aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedExchangeAddRelease Führt eine atomare Addition von zwei 32-Bit-Werten aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedExchangeAddNoFence Führt eine atomare Addition von zwei 32-Bit-Werten aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedExchangeAdd64 Führt eine atomare Addition von zwei 64-Bit-Werten aus.
InterlockedExchangeAddAcquire64 Führt eine atomare Addition von zwei 64-Bit-Werten aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedExchangeAddRelease64 Führt eine atomare Addition von zwei 64-Bit-Werten aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedExchangeAddNoFence64 Führt eine atomare Addition von zwei 64-Bit-Werten aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedIncrement Inkrementiert (erhöht) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang.
InterlockedIncrementAcquire Inkrementiert (erhöht) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedIncrementRelease Inkrementiert (erhöht) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedIncrementNoFence Inkrementiert (erhöht) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedIncrement16 Inkrementiert (erhöht) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang.
InterlockedIncrement16Acquire Inkrementiert (erhöht) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
InterlockedIncrement16Release Inkrementiert (erhöht) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedIncrement16NoFence Inkrementiert (erhöht) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedIncrement64 Inkrementiert (erhöht) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang.
InterlockedIncrementAcquire64 Inkrementiert (erhöht) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedIncrementRelease64 Inkrementiert (erhöht) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherreihenfolge ausgeführt.
InterlockedIncrementNoFence64 Inkrementiert (erhöht) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedOr Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus.
InterlockedOrAcquire Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedOrRelease Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedOrNoFence Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedOr8 Führt einen atomaren OR-Vorgang für die angegebenen zeichenwerte aus.
InterlockedOr8Acquire Führt einen atomaren OR-Vorgang für die angegebenen zeichenwerte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedOr8Release Führt einen atomaren OR-Vorgang für die angegebenen zeichenwerte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedOr8NoFence Führt einen atomaren OR-Vorgang für die angegebenen zeichenwerte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedOr16 Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus.
InterlockedOr16Acquire Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedOr16Release Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedOr16NoFence Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedOr64 Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus.
InterlockedOr64Acquire Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedOr64Release Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedOr64NoFence Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedXor Führt einen atomischen XOR-Vorgang für die angegebenen LONG-Werte aus.
InterlockedXorAcquire Führt einen atomischen XOR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedXorRelease Führt einen atomischen XOR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedXorNoFence Führt einen atomischen XOR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedXor8 Führt einen atomischen XOR-Vorgang für die angegebenen Zeichenwerte aus .
InterlockedXor8Acquire Führt einen atomischen XOR-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedXor8Release Führt einen atomischen XOR-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedXor8NoFence Führt einen atomischen XOR-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedXor16 Führt einen atomischen XOR-Vorgang für die angegebenen SHORT-Werte aus.
InterlockedXor16Acquire Führt einen atomischen XOR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedXor16Release Führt einen atomischen XOR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedXor16NoFence Führt einen atomischen XOR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren
InterlockedXor64 Führt einen atomischen XOR-Vorgang für die angegebenen LONGLONG-Werte aus.
InterlockedXor64Acquire Führt einen atomischen XOR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
InterlockedXor64Release Führt einen atomischen XOR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
InterlockedXor64NoFence Führt einen atomischen XOR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Die Verwendung von Speicherbarrieren

 

Mutex-Funktionen

Mutex-Funktion BESCHREIBUNG
CreateMutex Erstellt oder öffnet ein benanntes oder unbenannte Mutex-Objekt.
CreateMutexEx Erstellt oder öffnet ein benanntes oder unbenannte Mutex-Objekt und gibt ein Handle an das Objekt zurück.
OpenMutex Öffnet ein vorhandenes benanntes Mutex-Objekt.
Releasemutex Gibt den Besitz des angegebenen Mutex-Objekts frei.

 

Private Namespacefunktionen

Private Namespace-Funktion BESCHREIBUNG
AddSIDToBoundaryDescriptor Fügt dem angegebenen Begrenzungsdeskriptor eine neue Sicherheits-ID (SID) hinzu.
AddIntegrityLabelToBoundaryDescriptor Fügt dem angegebenen Begrenzungsdeskriptor einen neuen erforderlichen Sicherheitsbezeichner (SID) hinzu.
ClosePrivateNamespace Schließt ein geöffnetes Namespacehandle.
CreateBoundaryDescriptor Erstellt einen Begrenzungsdeskriptor.
CreatePrivateNamespace Erstellt einen privaten Namespace.
DeleteBoundaryDescriptor Löscht den angegebenen Begrenzungsdeskriptor.
OpenPrivateNamespace Öffnet einen privaten Namespace.

 

Semaphorfunktionen

Semaphorfunktion BESCHREIBUNG
CreateSemaphor Erstellt oder öffnet ein benanntes oder unbenannte Semaphorobjekt.
CreateSemaphoreEx Erstellt oder öffnet ein benanntes oder unbenannte Semaphorobjekt und gibt ein Handle an das Objekt zurück.
OpenSemaphor Öffnet ein vorhandenes benanntes Semaphorobjekt.
ReleaseSemaphor Erhöht die Anzahl des angegebenen Semaphorobjekts um einen angegebenen Betrag.

 

Singly verknüpfte Listenfunktionen

Singly-verknüpfte Listenfunktion BESCHREIBUNG
InitializeSListHead Initialisiert den Kopf einer einfach verknüpften Liste.
InterlockedFlushSList Löscht die gesamte Liste der Elemente in einer einfach verknüpften Liste.
InterlockedPopEntrySList Entfernt ein Element von der Vorderseite einer einfach verknüpften Liste.
InterlockedPushEntrySList Fügt ein Element an der Vorderseite einer einfach verknüpften Liste ein.
InterlockedPushListSList Fügt eine singly-verknüpfte Liste an der Vorderseite einer anderen singly verknüpften Liste ein.
InterlockedPushListSListEx Fügt eine singly-verknüpfte Liste an der Vorderseite einer anderen singly verknüpften Liste ein. Der Zugriff auf die Listen wird auf einem Multiprozessorsystem synchronisiert. Diese Version der Methode verwendet nicht die __fastcall Aufrufkonvention.
QueryDepthSList Ruft die Anzahl der Einträge in der angegebenen singly verknüpften Liste ab.
RtlFirstEntrySList Ruft den ersten Eintrag in einer einfach verknüpften Liste ab.
RtlInitializeSListHead Initialisiert den Kopf einer einfach verknüpften Liste. Anwendungen sollten stattdessen InitializeSListHead aufrufen.
RtlInterlockedFlushSList Löscht die gesamte Liste der Elemente in einer einfach verknüpften Liste. Anwendungen sollten stattdessen InterlockedFlushSList aufrufen.
RtlInterlockedPopEntrySList Entfernt ein Element von der Vorderseite einer einfach verknüpften Liste. Anwendungen sollten stattdessen InterlockedPopEntrySList aufrufen.
RtlInterlockedPushEntrySList Fügt ein Element an der Vorderseite einer einfach verknüpften Liste ein. Anwendungen sollten stattdessen InterlockedPushEntrySList aufrufen.
RtlQueryDepthSList Ruft die Anzahl der Einträge in der angegebenen singly verknüpften Liste ab. Anwendungen sollten stattdessen QueryDepthSList aufrufen.

 

Synchronisierungsbarrierefunktionen

Synchronisierungsbarrierefunktion BESCHREIBUNG
DeleteSynchronizationBarrier Löscht eine Synchronisierungsbarriere.
EnterSynchronizationBarrier Gibt eine Synchronisierungsbarriere ein und wartet auf die entsprechende Anzahl von Threads, um sich an der Barriere zu treffen.
InitializeSynchronizationBarrier Initialisiert eine neue Synchronisierungsbarriere.

 

Timer-Warteschlangen-Timerfunktionen

Timer-Warteschlangen-Timerfunktion BESCHREIBUNG
ChangeTimerQueueTimer Updates einen Timer-Warteschlangen-Timer.
CreateTimerQueue Erstellt eine Warteschlange für Zeitgeber.
CreateTimerQueueTimer Erstellt einen Timer-Warteschlangen-Timer.
DeleteTimerQueue Löscht eine Timerwarteschlange.
DeleteTimerQueueEx Löscht eine Timerwarteschlange.
DeleteTimerQueueTimer Bricht einen Timer-Queue-Timer ab.

 

Wartefunktionen

Wartefunktion BESCHREIBUNG
MsgWaitForMultipleObjects Wartet, bis sich eines oder alle angegebenen Objekte im Signalzustand befinden oder das Timeoutintervall verstrichen ist. Die Objekte können Eingabeereignisobjekte enthalten.
MsgWaitForMultipleObjectsEx Wartet, bis sich eines oder alle angegebenen Objekte im signalierten Zustand befinden, bis eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) für den Thread in die Warteschlange eingereiht wird oder das Timeoutintervall verstrichen ist. Das Array von Objekten kann Eingabeereignisobjekte enthalten.
Registerwaitforsingleobject Weist einen Wartethread im Threadpool an, auf das -Objekt zu warten.
SignalObjectAndWait Signalisiert ein Objekt und wartet auf ein anderes Objekt als einzelnen Vorgang.
Aufheben der RegistrierungWait Bricht einen registrierten Wartevorgang ab.
Aufheben der RegistrierungWaitEx Bricht einen registrierten Wartevorgang ab.
WaitForMultipleObjects Wartet, bis sich eines oder alle angegebenen Objekte im Signalzustand befinden oder das Timeoutintervall verstrichen ist.
WaitForMultipleObjectsEx Wartet, bis sich eines oder alle angegebenen Objekte im signalierten Zustand befinden, bis eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) für den Thread in die Warteschlange eingereiht wird oder das Timeoutintervall verstrichen ist.
Waitforsingleobject Wartet, bis sich das angegebene Objekt im Signalzustand befindet oder das Timeoutintervall verstrichen ist.
WaitForSingleObjectEx Wartet, bis sich das angegebene Objekt im signalierten Zustand befindet, bis eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) für den Thread in die Warteschlange eingereiht wird oder das Timeoutintervall verstreicht.
WaitOnAddress Wartet, bis sich der Wert an der angegebenen Adresse ändert.
Waitortimercallback Eine anwendungsdefinierte Funktion, die als Startadresse für einen Timerrückruf oder einen registrierten Warterückruf dient.
WakeByAddressAll Aktiviert alle Threads, die darauf warten, dass sich der Wert einer Adresse ändert.
WakeByAddressSingle Aktiviert einen Thread, der darauf wartet, dass sich der Wert einer Adresse ändert.

 

Wartezeitgeberfunktionen

Wartezeitfunktion BESCHREIBUNG
CancelWaitableTimer Legt den angegebenen wartebaren Timer auf den inaktiven Zustand fest.
CreateWaitableTimer Erstellt oder öffnet ein wartebares Timerobjekt.
CreateWaitableTimerEx Erstellt oder öffnet ein wartebares Timerobjekt und gibt ein Handle an das Objekt zurück.
OpenWaitableTimer Öffnet ein vorhandenes benanntes wartebares Timerobjekt.
SetWaitableTimer Aktiviert den angegebenen wartebaren Timer.
SetWaitableTimerEx Aktiviert den angegebenen wartebaren Timer und stellt Kontextinformationen für den Timer bereit. .
TimerAPCProc Anwendungsdefinierte Timer-Vervollständigungsroutine, die mit der SetWaitableTimer-Funktion verwendet wird.