Share via


Función EnterUmsSchedulingMode (winbase.h)

Convierte el subproceso de llamada en un subproceso de programador de programación en modo de usuario (UMS).

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 EnterUmsSchedulingMode(
  [in] PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);

Parámetros

[in] SchedulerStartupInfo

Puntero a una estructura de UMS_SCHEDULER_STARTUP_INFO que especifica atributos UMS para el subproceso, incluida una lista de finalización y una función de punto de entrada UmsSchedulerProc .

Valor devuelto

Si la función se ejecuta correctamente, devuelve un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

El programador de UMS de una aplicación crea un subproceso de programador de UMS para cada procesador que se usará para ejecutar subprocesos de UMS. El programador suele establecer la afinidad del subproceso del programador para un único procesador, reservando eficazmente el procesador para el uso de ese subproceso del programador. Para obtener más información sobre la afinidad de subproceso, vea Varios procesadores.

Cuando se crea un subproceso de programador de UMS, el sistema llama a la función de punto de entrada UmsSchedulerProc especificada con la llamada a la función EnterUmsSchedulingMode . El programador de la aplicación es responsable de finalizar cualquier inicialización específica de la aplicación del subproceso del programador y seleccionar un subproceso de trabajo de UMS que se va a ejecutar.

El programador de la aplicación selecciona un subproceso de trabajo de UMS que se va a ejecutar mediante una llamada a ExecuteUmsThread con el contexto del subproceso de UMS del subproceso de trabajo. El subproceso de trabajo se ejecuta hasta que produce el control llamando a UmsThreadYield, bloques o termina. El subproceso del programador está disponible para ejecutar otro subproceso de trabajo.

Un subproceso del programador debe seguir ejecutándose hasta que todos sus subprocesos de trabajo lleguen a un punto de detención natural: es decir, todos los subprocesos de trabajo han dado lugar a errores, bloqueados o finalizados.

Requisitos

   
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

ExecuteUmsThread

Varios procesadores

UMS_SCHEDULER_STARTUP_INFO

UmsSchedulerProc

Programación en modo de usuario