Freigeben über


Synchronisierungsfunktionen

Die folgenden Funktionen werden in der Synchronisierung verwendet.

Asynchrone Funktionen

Asynchrone Funktion Beschreibung
APCProc- Eine anwendungsdefinierte Rückruffunktion, die mit der QueueUserAPC--Funktion 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)-Objekt für den Benutzermodus hinzu.

 

Bedingungsvariable und SRW-Sperrfunktionen

Bedingungsvariable und SRW-Sperrfunktion Beschreibung
AcquireSRWLockExclusive Erwirbt eine slim Reader/Writer (SRW)-Sperre im exklusiven Modus.
AcquireSRWLockShared Erwirbt eine schlanke Lese-/Schreibzugriffssperre (SRW) im gemeinsam genutzten Modus.
InitializeConditionVariable- Initialisiert eine Bedingungsvariable.
InitializeSRWLock- Initialisieren Sie eine slim Reader/Writer (SRW)-Sperre.
ReleaseSRWLockExclusive Gibt eine schlanke Lese-/Schreibsperre (SRW) frei, die im exklusiven Modus erworben wurde.
ReleaseSRWLockShared Gibt eine schlanke Lese-/Schreibsperre (SRW) frei, die im freigegebenen Modus erworben wurde.
SleepConditionVariableCS Schläft auf der angegebenen Bedingungsvariable und gibt den angegebenen kritischen Abschnitt als Atomoperation frei.
SleepConditionVariableSRW- Schläft auf der angegebenen Bedingungsvariable und gibt die angegebene Sperre als atome Operation frei.
TryAcquireSRWLockExclusive Versucht, eine schlanke Lese-/Schreibzugriffssperre (SRW) im exklusiven Modus zu erwerben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre.
TryAcquireSRWLockShared Versucht, eine schlanke Lese-/Schreibzugriffssperre (SRW) im gemeinsam genutzten Modus zu erwerben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre.
WakeAllConditionVariable Alle Threads 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 zugeordneten 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 Drehzahl 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 Drehzahl für den angegebenen kritischen Abschnitt fest.
TryEnterCriticalSection Versucht, einen kritischen Abschnitt ohne Blockierung einzugeben.

 

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 signalisierten Zustand fest und setzt es dann auf den nichtsignalierten Zustand zurück, nachdem die entsprechende Anzahl von Wartethreads freigegeben wurde.
ResetEvent- Legt das angegebene Ereignisobjekt auf den Nichtsignalzustand fest.
SetEvent- Legt das angegebene Ereignisobjekt auf den signalierten Zustand fest.

 

Einmalige Initialisierungsfunktionen

Einmalige Initialisierungsfunktion 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 Atomzugabevorgang für die angegebenen LONG--Werte aus.
InterlockedAddAcquire- Führt einen Atomzugabevorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAddRelease Führt einen Atomzugabevorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAddNoFence Führt einen Atomzugabevorgang für die angegebenen LONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedAdd64 Führt einen Atomzugabevorgang für die angegebenen LONGLONG--Werte aus.
InterlockedAddAcquire64- Führt einen Atomzugabevorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAddRelease64 Führt einen Atomzugabevorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAddNoFence64 Führt einen Atomzugabevorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedAnd Führt einen Atom- UND-Vorgang für die angegebenen LONG--Werte aus.
InterlockedAndAcquire Führt einen Atom- UND-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAndRelease Führt einen Atom- UND-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAndNoFence Führt einen Atom- UND-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedAnd8- Führt einen atomen AND-Vorgang für die angegebenen Zeichen Werte aus.
InterlockedAnd8Acquire Führt einen atomen AND-Vorgang für die angegebenen Zeichen Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAnd8Release Führt einen atomen AND-Vorgang für die angegebenen Zeichen Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAnd8NoFence Führt einen atomen AND-Vorgang für die angegebenen Zeichen Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedAnd16- Führt einen Atom- UND-Vorgang für die angegebenen SHORT--Werte aus.
InterlockedAnd16Acquire- Führt einen Atom- UND-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAnd16Release Führt einen Atom- UND-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAnd16NoFence- Führt einen Atom- UND-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedAnd64- Führt eine atomige AND-Operation für die angegebenen LONGLONG--Werte aus.
InterlockedAnd64Acquire- Führt eine atomige AND-Operation für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedAnd64Release Führt eine atomige AND-Operation für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedAnd64NoFence- Führt eine atomige AND-Operation für die angegebenen LONGLONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedBitTestAndComplement Testet das angegebene Bit des angegebenen LONG Wert und ergänzt es.
InterlockedBitTestAndComplement64 Testet das angegebene Bit des angegebenen LONG64 Wert und ergänzt es. Die Operation ist atom
InterlockedBitTestAndResetAcquire Testet das angegebene Bit des angegebenen LONG--Werts und legt es auf 0 fest. Der Vorgang ist atomar, und er wird mit der Speicher sortiersemantik ausgeführt.
InterlockedBitTestAndResetRelease Testet das angegebene Bit des angegebenen LONG--Werts und legt es auf 0 fest. Der Vorgang ist atomar und wird mithilfe der Speicherfreigabesemantik ausgeführt.
InterlockedBitTestAndSetAcquire Testet das angegebene Bit des angegebenen LONG Werts und legt es auf 1 fest. Der Vorgang ist atomar, und er wird mit der Speicher sortiersemantik ausgeführt.
InterlockedBitTestAndSetRelease Testet das angegebene Bit des angegebenen LONG Werts und legt es auf 1 fest. Der Vorgang ist atomar, und er wird mit freigabespeicherungssemantischer Semantik ausgeführt.
InterlockedBitTestAndReset Testet das angegebene Bit des angegebenen LONG--Werts und legt es auf 0 fest.
InterlockedBitTestAndReset64 Testet das angegebene Bit des angegebenen LONG64 Werts und legt es auf 0 fest.
InterlockedBitTestAndSet Testet das angegebene Bit des angegebenen LONG Werts und legt es auf 1 fest.
InterlockedBitTestAndSet64- Testet das angegebene Bit des angegebenen LONG64 Werts und legt es auf 1 fest.
InterlockedCompare64Exchange128- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert.
InterlockedCompare64ExchangeAcquire128- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedCompare64ExchangeRelease128- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht die angegebenen 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit dem angegebenen 128-Bit-Wert. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedCompareExchange Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert.
InterlockedCompareExchangeAcquire Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedCompareExchangeRelease Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert. Der Austausch wird mit der Semantik der Speicherbestellung durchgeführt.
InterlockedCompareExchangeNoFence- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedCompareExchange64- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert.
InterlockedCompareExchangeAcquire64- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert. Der Austausch wird mit der Semantik der Speicherbestellung durchgeführt.
InterlockedCompareExchangeRelease64- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert. Der Austausch wird mit der Semantik der Speicherbestellung durchgeführt.
InterlockedCompareExchangeNoFence64- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 64-Bit-Wert. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedCompareExchange16- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert.
InterlockedCompareExchange16Acquire- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert. Der Vorgang wird mit der Speicherbestellungssemantik ausgeführt.
InterlockedCompareExchange16Release Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert. Der Austausch wird mit der Semantik der Speicherbestellung durchgeführt.
InterlockedCompareExchange16NoFence- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedCompareExchange128- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 128-Bit-Werte und wechselt basierend auf dem Ergebnis des Vergleichs mit einem anderen 128-Bit-Wert.
InterlockedCompareExchangePointer- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und wechselt mit einem anderen Zeigerwert basierend auf dem Ergebnis des Vergleichs.
InterlockedCompareExchangePointerAcquire Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und wechselt mit einem anderen Zeigerwert basierend auf dem Ergebnis des Vergleichs. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedCompareExchangePointerRelease Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Zeigerwerte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und wechselt mit einem anderen Zeigerwert basierend auf dem Ergebnis des Vergleichs. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedCompareExchangePointerNoFence- Führt einen atombasierten Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und wechselt mit einem anderen Zeigerwert basierend auf dem Ergebnis des Vergleichs. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedDecrement- Verringert den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang (verringert sich um eins).
InterlockedDecrementAcquire- Verringert den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedDecrementRelease Verringert den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedDecrementNoFence Verringert den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedDecrement16 Verringert den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang (verringert sich um eins).
InterlockedDecrement16Acquire- Verringert den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Speicherbestellungssemantik ausgeführt.
InterlockedDecrement16Release Verringert den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedDecrement16NoFence- Verringert den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedDecrement64- Verringert den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang (verringert sich um eins).
InterlockedDecrementAcquire64 Verringert den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedDecrementRelease64 Verringert den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedDecrementNoFence64 Verringert den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang (verringert sich um eins). Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchange- Legt eine 32-Bit-Variable auf den angegebenen Wert als Atomvorgang fest.
InterlockedExchangeAcquire Legt eine 32-Bit-Variable auf den angegebenen Wert als Atomvorgang fest. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedExchangeNoFence- Legt eine 64-Bit-Variable auf den angegebenen Wert als Atomoperation fest. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchange8- Legt eine 8-Bit-Variable auf den angegebenen Wert als Atomvorgang fest.
InterlockedExchange16- Legt eine 16-Bit-Variable auf den angegebenen Wert als Atomvorgang fest.
InterlockedExchange16Acquire- Legt eine 16-Bit-Variable auf den angegebenen Wert als Atomvorgang fest. Der Vorgang wird mithilfe der Semantik der Speicherbestellung ausgeführt.
InterlockedExchange16NoFence- Legt eine 16-Bit-Variable auf den angegebenen Wert als Atomvorgang fest. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchange64- Legt eine 64-Bit-Variable auf den angegebenen Wert als Atomoperation fest.
InterlockedExchangeAcquire64- Legt eine 32-Bit-Variable auf den angegebenen Wert als Atomvorgang fest. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedExchangeNoFence64- Legt eine 64-Bit-Variable auf den angegebenen Wert als Atomoperation fest. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchangePointer- Atomar austauscht ein Paar Zeigerwerte.
InterlockedExchangePointerAcquire Atomar austauscht ein Paar Zeigerwerte. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedExchangePointerNoFence- Atomisch austauscht ein Adresspaar. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchangeSubtract Führt eine atomrische Subtraktion von zwei Werten aus.
InterlockedExchangeAdd Führt eine atomige Addition von zwei 32-Bit-Werten durch.
InterlockedExchangeAddAcquire Führt eine atomige Addition von zwei 32-Bit-Werten durch. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedExchangeAddRelease Führt eine atomige Addition von zwei 32-Bit-Werten durch. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedExchangeAddNoFence Führt eine atomige Addition von zwei 32-Bit-Werten durch. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedExchangeAdd64- Führt eine atomige Addition von zwei 64-Bit-Werten durch.
InterlockedExchangeAddAcquire64- Führt eine atomige Addition von zwei 64-Bit-Werten durch. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedExchangeAddRelease64- Führt eine atomige Addition von zwei 64-Bit-Werten durch. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedExchangeAddNoFence64- Führt eine atomige Addition von zwei 64-Bit-Werten durch. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedIncrement- Erhöht (um eins) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang.
InterlockedIncrementAcquire Erhöht (um eins) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik für die Speicherbestellung ausgeführt.
InterlockedIncrementRelease Erhöht (um eins) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherbestellung ausgeführt.
InterlockedIncrementNoFence Erhöht (um eins) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedIncrement16 Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang
InterlockedIncrement16Acquire Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Speicherbestellung ausgeführt.
InterlockedIncrement16Release Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherordnung ausgeführt.
InterlockedIncrement16NoFence- Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedIncrement64- Erhöht (um eins) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang.
InterlockedIncrementAcquire64 Erhöht (um eins) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik für die Speicherbestellung ausgeführt.
InterlockedIncrementRelease64 Erhöht (um eins) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherbestellung ausgeführt.
InterlockedIncrementNoFence64 Erhöht (um eins) den Wert der angegebenen 64-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedOr- Führt einen atomen OR-Vorgang für die angegebenen LONG--Werte aus.
InterlockedOrAcquire- Führt einen atomen OR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedOrRelease Führt einen atomen OR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedOrNoFence- Führt einen atomen OR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedOr8- Führt einen atomen OR-Vorgang für die angegebenen Zeichen--Werte aus.
InterlockedOr8Acquire- Führt einen atomen OR-Vorgang für die angegebenen Zeichen--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedOr8Release- Führt einen atomen OR-Vorgang für die angegebenen Zeichen--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedOr8NoFence Führt einen atomen OR-Vorgang für die angegebenen Zeichen--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedOr16 Führt einen atomen OR-Vorgang für die angegebenen SHORT--Werte aus.
InterlockedOr16Acquire- Führt einen atomen OR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedOr16Release Führt einen atomen OR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedOr16NoFence Führt einen atomen OR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedOr64- Führt einen atomen OR-Vorgang für die angegebenen LONGLONG--Werte aus.
InterlockedOr64Acquire- Führt einen atomen OR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedOr64Release Führt einen atomen OR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedOr64NoFence Führt einen atomen OR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedXor- Führt einen Atom-XOR-Vorgang für die angegebenen LONG--Werte aus.
InterlockedXorAcquire- Führt einen Atom-XOR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedXorRelease Führt einen Atom-XOR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedXorNoFence Führt einen Atom-XOR-Vorgang für die angegebenen LONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedXor8- Führt einen Atom-XOR-Vorgang für die angegebenen Char--Werte aus.
InterlockedXor8Acquire- Führt einen Atom-XOR-Vorgang für die angegebenen Char--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedXor8Release Führt einen Atom-XOR-Vorgang für die angegebenen Char--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedXor8NoFence Führt einen Atom-XOR-Vorgang für die angegebenen Char--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedXor16 Führt einen Atom-XOR-Vorgang für die angegebenen SHORT--Werte aus.
InterlockedXor16Acquire- Führt einen Atom-XOR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedXor16Release Führt einen Atom-XOR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedXor16NoFence- Führt einen Atom-XOR-Vorgang für die angegebenen SHORT--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden
InterlockedXor64- Führt einen Atom-XOR-Vorgang für die angegebenen LONGLONG--Werte aus.
InterlockedXor64Acquire- Führt einen Atom-XOR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Speicher sortiersemantik ausgeführt.
InterlockedXor64Release Führt einen Atom-XOR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird mit der Semantik der Speicherbestellung ausgeführt.
InterlockedXor64NoFence- Führt einen Atom-XOR-Vorgang für die angegebenen LONGLONG--Werte aus. Der Vorgang wird atomisch durchgeführt, ohne jedoch Speicherbarrieren zu verwenden

 

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 einen neuen Sicherheitsbezeichner (SECURITY Identifier, SID) hinzu.
AddIntegrityLabelToBoundaryDescriptor- Fügt dem angegebenen Begrenzungsdeskriptor eine neue erforderliche Sicherheits-ID (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-linked list functions

Singly-linked list function Beschreibung
InitializeSListHead- Initialisiert den Kopf einer singly verknüpften Liste.
InterlockedFlushSList Löscht die gesamte Liste der Elemente in einer singly verknüpften Liste.
InterlockedPopEntrySList- Entfernt ein Element aus der Vorderseite einer singly verknüpften Liste.
InterlockedPushEntrySList- Fügt ein Element an der Vorderseite einer singly verknüpften Liste ein.
InterlockedPushListSListSList Fügt eine singly verknüpfte Liste an der Vorderseite einer anderen verknüpften Liste ein.
InterlockedPushListSListSListEx Fügt eine singly verknüpfte Liste an der Vorderseite einer anderen 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 verknüpften Liste ab.
RtlFirstEntrySList- Ruft den ersten Eintrag in einer singly verknüpften Liste ab.
RtlInitializeSListHead- Initialisiert den Kopf einer singly verknüpften Liste. Anwendungen sollten stattdessen InitializeSListHead- aufrufen.
RtlInterlockedFlushSList Löscht die gesamte Liste der Elemente in einer singly verknüpften Liste. Anwendungen sollten stattdessen InterlockedFlushSList- aufrufen.
RtlInterlockedPopEntrySList Entfernt ein Element aus der Vorderseite einer singly verknüpften Liste. Anwendungen sollten stattdessen InterlockedPopEntrySList- aufrufen.
RtlInterlockedPushEntrySList Fügt ein Element an der Vorderseite einer singly verknüpften Liste ein. Anwendungen sollten stattdessen InterlockedPushEntrySList- aufrufen.
RtlQueryDepthSList- Ruft die Anzahl der Einträge in der angegebenen verknüpften Liste ab. Anwendungen sollten stattdessen QueryDepthSList- aufrufen.

 

Synchronisierungsbarrierenfunktionen

Synchronisierungsbarrierenfunktion Beschreibung
DeleteSynchronizationBarrier- Löscht eine Synchronisierungsbarriere.
EnterSynchronizationBarrier Gibt eine Synchronisierungsbarriere ein und wartet auf die entsprechende Anzahl von Threads, um an der Barriere zu rendezvous.
InitializeSynchronizationBarrier Initialisiert eine neue Synchronisierungsbarriere.

 

Timerwarteschleifen-Zeitgeberfunktionen

Timerwarteschleifen-Timerfunktion Beschreibung
ChangeTimerQueueTimer- Aktualisiert einen Timer-Warteschlangen-Timer.
CreateTimerQueue- Erstellt eine Warteschlange für Zeitgeber.
CreateTimerQueueTimer- Erstellt einen Timer-Warteschlangen-Timer.
DeleteTimerQueue Löscht eine Zeitgeberwarteschlange.
DeleteTimerQueueEx- Löscht eine Zeitgeberwarteschlange.
DeleteTimerQueueTimer Bricht einen Timer-Warteschlangen-Timer ab.

 

Wartefunktionen

Wait-Funktion Beschreibung
MsgWaitForMultipleObjects Wartet, bis mindestens eins der angegebenen Objekte im Signalzustand oder im Timeoutintervall verstrichen ist. Die Objekte können Eingabeereignisobjekte enthalten.
MsgWaitForMultipleObjectsEx- Wartet, bis sich ein oder alle angegebenen Objekte im Signalzustand befinden, eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) im Thread in die Warteschlange gestellt wird oder das Timeoutintervall verstrichen ist. Das Array von Objekten kann Eingabeereignisobjekte enthalten.
RegisterWaitForSingleObject Leitet einen Wartethread im Threadpool an, um auf das Objekt zu warten.
SignalObjectAndWait Signalisiert ein Objekt und wartet als einzelner Vorgang auf ein anderes Objekt.
UnregisterWait- Bricht einen registrierten Wartevorgang ab.
UnregisterWaitEx- Bricht einen registrierten Wartevorgang ab.
WaitForMultipleObjects Wartet, bis mindestens eins der angegebenen Objekte im Signalzustand oder im Timeoutintervall verstrichen ist.
WaitForMultipleObjectsEx Wartet, bis sich ein oder alle angegebenen Objekte im Signalzustand befinden, eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) im Thread in die Warteschlange gestellt wird oder das Timeoutintervall verstrichen ist.
WaitForSingleObject Wartet, bis sich das angegebene Objekt im signalgesteuerten Zustand befindet oder das Timeoutintervall verstrichen ist.
WaitForSingleObjectEx Wartet, bis sich das angegebene Objekt im signalgesteuerten Zustand befindet, eine E/A-Vervollständigungsroutine oder ein asynchroner Prozeduraufruf (APC) im Thread in die Warteschlange gestellt wird oder das Timeoutintervall verstrichen ist.
WaitOnAddress- Wartet auf den Wert an der angegebenen Adresse, um sich zu ändern.
WaitOrTimerCallback- Eine anwendungsdefinierte Funktion, die als Startadresse für einen Timerrückruf oder einen registrierten Warterückruf dient.
WakeByAddressAll Aktiviert alle Threads, die auf den Wert einer Zu ändernden Adresse warten.
WakeByAddressSingle- Aktiviert einen Thread, der auf den Wert einer zu ändernden Adresse wartet.

 

Wartezeitgeberfunktionen

Waitable-Timer-Funktion Beschreibung
CancelWaitableTimer- Legt den angegebenen Wartezeitgeber 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 zeitgeberobjekt mit Wartefrist.
SetWaitableTimer- Aktiviert den angegebenen Wartezeitgeber.
SetWaitableTimerEx- Aktiviert den angegebenen Wartezeitgeber und stellt Kontextinformationen für den Timer bereit. .
TimerAPCProc- Anwendungsdefinierte Zeitgeberabschlussroutine, die mit der SetWaitableTimer--Funktion verwendet wird.