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.
Fordert, dass die Common Language Runtime (CLR) einen Iterator für den Host erstellt, um die Gruppe von Aufgaben zu bestimmen, die auf eine Reader/Writer-Sperre warten.
HRESULT CreateRWLockOwnerIterator (
[in] SIZE_T cookie,
[out] SIZE_T *pIterator
);
Parameter
cookie
[in] Das der Reader/Writer-Sperre zugeordnete Cookie.pIterator
[out] Ein Zeiger auf einen Iterator, der an die GetRWLockOwnerNext-Methode und die DeleteRWLockOwnerIterator-Methode übergeben werden kann.
Rückgabewert
HRESULT |
Beschreibungen |
|---|---|
S_OK |
CreateRWLockOwnerIterator 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. |
HOST_E_INVALIDOPERATION |
CreateRWLockOwnerIterator wurde für einen Thread aufgerufen, der gerade verwalteten Code ausführt. |
Hinweise
Hosts rufen während der Deadlockerkennung normalerweise die Methoden CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator und GetRWLockOwnerNext auf. Der Host muss sicherstellen, dass die Reader/Writer-Sperre weiterhin gültig ist, da die CLR nichts unternimmt, um diese Sperre aufrechtzuerhalten. Mehrere Strategien sind verfügbar, damit der Host die Gültigkeit von der Sperre sicherstellt:
Der Host kann Freigabeaufrufe für die Reader/Writer-Sperre (z. B. IHostSemaphore::ReleaseSemaphore) blockieren und dabei sicherstellen, dass diese Blockade keinen Deadlock verursacht.
Der Host kann verhindern, dass beim Beenden das Ereignisobjekt erwartet wird, das der Reader/Writer-Sperre zugeordnet ist. Der Host muss wiederum sicherstellen, dass diese Blockade keinen Deadlock verursacht.
Hinweis |
|---|
CreateRWLockOwnerIterator darf nur für Threads aufgerufen werden, die gerade nicht verwalteten Code ausführen. |
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
Hinweis