Synchronisierungsfunktionen
Die folgenden Funktionen werden in der Synchronisierung verwendet.
- asynchrone Funktionen
- Bedingungsvariablen und SRW-Sperrfunktionen
- Kritische Abschnittsfunktionen
- Ereignisfunktionen
- einmalige Initialisierungsfunktionen
- Interlocked Functions
- Mutex-Funktionen
- Funktionen des privaten Namespaces
- Semaphorfunktionen
- mit Singly verknüpften Listenfunktionen
- Synchronisierungsbarrierenfunktionen
- Timerwarteschlangen-Timerfunktionen
- Wait-Funktionen
- Funktionen mit Wartezeitgeber
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. |