Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Methode fordert an, dass die Common Language Runtime (CLR) einen Iterator für den Host erstellt, der verwendet werden soll, um die Tasks zu bestimmen, die auf eine Reader-Writer-Sperre warten.
Syntax
HRESULT CreateRWLockOwnerIterator (
[in] SIZE_T cookie,
[out] SIZE_T *pIterator
);
Parameter
cookie
[in] Das Cookie, das der gewünschten Reader-Writer-Sperre zugeordnet ist
pIterator
[out] Ein Zeiger auf einen Iterator, der an die Methoden GetRWLockOwnerNext und DeleteRWLockOwnerIterator übergeben werden kann
Rückgabewert
| HRESULT | BESCHREIBUNG |
|---|---|
| S_OK |
CreateRWLockOwnerIterator wurde erfolgreich zurückgegeben. |
| HOST_E_CLRNOTAVAILABLE | Die CLR wurde nicht in einen Prozess geladen oder befindet sich in einem Zustand, in dem sie keinen verwalteten Code ausführen oder den Aufruf nicht erfolgreich verarbeiten kann. |
| HOST_E_TIMEOUT | Timeout des Aufrufs. |
| HOST_E_NOT_OWNER | Der Aufrufer besitzt die Sperre nicht. |
| HOST_E_ABANDONED | Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber darauf gewartet hat. |
| E_FAIL | Es ist ein unbekannter katastrophaler Fehler aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück. |
| HOST_E_INVALIDOPERATION |
CreateRWLockOwnerIterator wurde für einen Thread aufgerufen, der derzeit verwalteten Code ausführt. |
Bemerkungen
Hosts rufen die Methoden CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator und GetRWLockOwnerNext in der Regel während der Deadlockerkennung auf. Der Host ist dafür verantwortlich, sicherzustellen, dass die Reader-Writer-Sperre weiterhin gültig ist, da die CLR nicht versucht, die Reader-Writer-Sperre aufrechtzuerhalten. Dem Host stehen mehrere Strategien zur Verfügung, um die Gültigkeit der Sperre sicherzustellen:
Der Host kann Releaseaufrufe für die Reader-Writer-Sperre (z. B. IHostSemaphore::ReleaseSemaphore) blockieren und gleichzeitig sicherstellen, dass dadurch kein Deadlock verursacht wird.
Der Host kann verhindern, dass der Exit auf das Ereignisobjekt wartet, das der Reader-Writer-Sperre zugeordnet ist, und stellt auch dabei sicher, dass diese Blockierung keinen Deadlock verursacht.
Hinweis
CreateRWLockOwnerIterator darf nur für Threads aufgerufen werden, die derzeit nicht verwalteten Code ausführen.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: MSCorEE.h
Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.
.NET Framework-Versionen: Seit 2.0 verfügbar.