Función ExecuteUmsThread (winbase.h)

Ejecuta el subproceso de trabajo de UMS especificado.

Advertencia

A partir de Windows 11, no se admite la programación en modo de usuario. Todas las llamadas producen el error ERROR_NOT_SUPPORTED.

Sintaxis

BOOL ExecuteUmsThread(
  [in, out] PUMS_CONTEXT UmsThread
);

Parámetros

[in, out] UmsThread

Puntero al contexto del subproceso umS del subproceso de trabajo que se va a ejecutar.

Valor devuelto

Si la función se ejecuta correctamente, no devuelve un valor.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError. Los posibles códigos de error incluyen lo siguiente.

Código devuelto Descripción
ERROR_RETRY
El sistema bloquea temporalmente el subproceso de trabajo de UMS especificado. El autor de la llamada puede reintentar la operación.
ERROR_NOT_SUPPORTED
No se admite UMS.

Comentarios

La función ExecuteUmsThread carga el estado del subproceso de trabajo de UMS especificado sobre el estado del subproceso del programador de UMS que realiza la llamada para que el subproceso de trabajo pueda ejecutarse. El subproceso de trabajo se ejecuta hasta que produce llamando a la función UmsThreadYield , los bloques o finaliza.

Cuando un subproceso de trabajo produce o bloquea, el sistema llama a la función de punto de entrada UmsSchedulerProc del subproceso del programador. Cuando se desbloquea un subproceso de trabajo bloqueado anteriormente, el sistema pone en cola el subproceso de trabajo a la lista de finalización especificada con la función UpdateProcThreadAttribute cuando se creó el subproceso de trabajo.

La función ExecuteUmsThread no devuelve a menos que se produzca un error. Si la función devuelve ERROR_RETRY, el error es transitorio y se puede reintentar la operación.

Si la función devuelve un error distinto de ERROR_RETRY, el programador de la aplicación debe comprobar si el subproceso está suspendido o finalizado llamando a QueryUmsThreadInformation con UmsThreadIsSuspended o UmsThreadIsTerminated, respectivamente. Otros posibles errores incluyen llamar a la función en un subproceso que no es un subproceso del programador de UMS, pasar un contexto de subproceso de trabajo umS no válido o especificar un subproceso de trabajo que ya se está ejecutando en otro subproceso del programador.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 (solo 64 bits) [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll
Conjunto de API api-ms-win-core-ums-l1-1-0 (introducido en Windows 7)

Consulte también

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute