Freigeben über


IHostSyncManager::CreateSemaphore-Methode

Erstellt ein IHostSemaphore-Objekt, das die Common Language Runtime (CLR) als Semaphor für Warteereignisse verwenden kann.

HRESULT CreateSemaphore (
    [in]  DWORD dwInitial,
    [in]  DWORD dwMax,
    [out] IHostSemaphore **ppSemaphore
);

Parameter

  • dwInitial
    [in] Die anfängliche Anzahl für ppSemaphore.

  • dwMax
    [in] Der maximale Anzahl für ppSemaphore.

  • ppSemaphore
    [out] Ein Zeiger auf die Adresse einer IHostSemaphore-Instanz oder NULL, wenn das Semaphor nicht erstellt werden konnte.

Rückgabewert

HRESULT

Beschreibungen

S_OK

CreateSemaphore erfolgreich zurückgegeben.

HOST_E_CLRNOTAVAILABLE

Die CLR wurde nicht in einen Prozess geladen oder befindet sich in einem Zustand, in dem sie weder verwalteten Code ausführen noch den Aufruf erfolgreich verarbeiten kann.

HOST_E_TIMEOUT

Der Aufruf hat das Zeitlimit überschritten.

HOST_E_NOT_OWNER

Der Aufrufer ist nicht Besitzer der Sperre.

HOST_E_ABANDONED

Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber auf das Ereignis gewartet hat.

E_FAIL

Ein unbekannter, schwerwiegender Fehler ist aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR innerhalb des Prozesses nicht mehr verwendet werden. Nachfolgende Aufrufe von Hostmethoden geben HOST_E_CLRNOTAVAILABLE zurück.

E_OUTOFMEMORY

Es war nicht genügend Arbeitsspeicher verfügbar, um das angeforderte Ereignisobjekt zu erstellen.

Hinweise

CreateSemaphore spiegelt die Win32-Funktion, die über den gleichen Namen verfügt. Der dwInitial-Parameter und der dwMax-Parameter verwenden dieselbe Semantik für die Semaphoranzahl wie der Win32-lInitialCount-Parameter bzw. der Win32-lMaximumCount-Parameter. dwInitial muss zwischen null und dwMax (einschließlich) liegen. dwMax muss größer null sein.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: MSCorEE.h

Bibliothek: als Ressource in MSCorEE.dll enthalten

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICLRSyncManager-Schnittstelle

IHostSemaphore-Schnittstelle

IHostSyncManager-Schnittstelle