Synchronisierungsfunktionen
Die folgenden Funktionen werden bei der Synchronisierung verwendet.
- Asynchrone Funktionen
- Bedingungsvariable und SRW-Sperrfunktionen
- Wichtige Abschnittsfunktionen
- Ereignisfunktionen
- Einmalige Initialisierungsfunktionen
- Ineinandergreifen von Funktionen
- Mutex-Funktionen
- Private Namespacefunktionen
- Semaphorfunktionen
- Singly-verknüpfte Listenfunktionen
- Synchronisierungsbarrierefunktionen
- Timer-Warteschlangen-Timerfunktionen
- Wait-Funktionen
- Waitable-Timer-Funktionen
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. |