Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Solicita que Common Language Runtime (CLR) cree un iterador que permita al host determinar el conjunto de tareas que esperan en un bloqueo de lectura y escritura.
HRESULT CreateRWLockOwnerIterator (
[in] SIZE_T cookie,
[out] SIZE_T *pIterator
);
Parámetros
cookie
[in] Cookie asociada al bloqueo de lector y escritor.pIterator
[out] Puntero a un iterador que se puede pasar a los métodos GetRWLockOwnerNext y DeleteRWLockOwnerIterator.
Valor devuelto
HRESULT |
Descripción |
---|---|
S_OK |
CreateRWLockOwnerIterator finalizó correctamente. |
HOST_E_CLRNOTAVAILABLE |
CLR no se ha cargado en un proceso o está en un estado en el que no puede ejecutar el código administrado o procesar la llamada correctamente. |
HOST_E_TIMEOUT |
Se agotó el tiempo de espera de la llamada. |
HOST_E_NOT_OWNER |
El llamador no posee el bloqueo. |
HOST_E_ABANDONED |
Se canceló un evento mientras una fibra o un subproceso bloqueado estaba esperándole. |
E_FAIL |
Se ha producido un error catastrófico desconocido. Si un método devuelve E_FAIL, CLR no se puede seguir utilizando en el proceso. Las llamadas subsiguientes a métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE. |
HOST_E_INVALIDOPERATION |
CreateRWLockOwnerIterator se ha llamado en un subproceso que está ejecutando actualmente código administrado. |
Comentarios
Normalmente, los hosts llaman a los métodos CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator y GetRWLockOwnerNext durante la detección de interbloqueos. El host es responsable de garantizar que el bloqueo de lectura y escritura siga siendo válido, ya que CLR no intenta mantener activo dicho bloqueo. Existen varias estrategias para que el host garantice la validez del bloqueo:
El host puede bloquear las llamadas de liberación en el bloqueo de lectura y escritura (por ejemplo, IHostSemaphore::ReleaseSemaphore) asegurándose de que este bloqueo no produzca ningún interbloqueo.
El host puede bloquear la salida de la espera al objeto de evento asociado al bloqueo de lector y escritor, garantizando de nuevo que este bloqueo no produzca ningún interbloqueo.
![]() |
---|
CreateRWLockOwnerIterator sólo se debe llamar en los subprocesos que están ejecutando actualmente código no administrado. |
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: MSCorEE.h
Biblioteca: Se incluye como recurso en MsCorEE.dll
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0