Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Запросы, которые среда CLR создает итератор для узла, чтобы определить набор задач, ожидающих блокировки средства чтения и записи.
Синтаксис
HRESULT CreateRWLockOwnerIterator (
[in] SIZE_T cookie,
[out] SIZE_T *pIterator
);
Параметры
cookie
[in] Файл cookie, связанный с требуемой блокировкой средства чтения и записи.
pIterator
[out] Указатель на итератор, который можно передать в методы GetRWLockOwnerNext и DeleteRWLockOwnerIterator .
Возвращаемое значение
| HRESULT | Описание: |
|---|---|
| S_OK |
CreateRWLockOwnerIterator возвращается успешно. |
| HOST_E_CLRNOTAVAILABLE | Среда CLR не была загружена в процесс или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов. |
| HOST_E_TIMEOUT | Истекло время ожидания звонка. |
| HOST_E_NOT_OWNER | Вызывающий объект не является владельцем блокировки. |
| HOST_E_ABANDONED | Событие было отменено во время ожидания заблокированного потока или волокна. |
| E_FAIL | Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не поддерживается в процессе. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE. |
| HOST_E_INVALIDOPERATION |
CreateRWLockOwnerIterator был вызван в потоке, в котором в настоящее время выполняется управляемый код. |
Комментарии
Узлы обычно вызывают методы CreateRWLockOwnerIterator, DeleteRWLockOwnerIteratorи GetRWLockOwnerNext во время обнаружения взаимоблокировки. Узел отвечает за то, чтобы блокировка модуля чтения и записи по-прежнему действительна, так как среда CLR не пытается сохранить блокировку модуля чтения и записи в активном состоянии. Для узла доступно несколько стратегий для обеспечения допустимости блокировки:
Узел может блокировать вызовы выпуска для блокировки средства чтения и записи (например, IHostSemaphore::ReleaseSemaphore), гарантируя, что этот блок не вызывает взаимоблокировку.
Узел может заблокировать выход из ожидания объекта события, связанного с блокировкой средства чтения и записи, снова гарантируя, что этот блок не вызывает взаимоблокировку.
Примечание
CreateRWLockOwnerIterator должен вызываться только в потоках, которые в настоящее время выполняют неуправляемый код.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: MSCorEE.h
Библиотека: Включено в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: доступно с версии 2.0