Função ExecuteUmsThread (winbase.h)
Executa o thread de trabalho ums especificado.
Aviso
A partir de Windows 11, não há suporte para o agendamento no modo de usuário. Todas as chamadas falham com o erro ERROR_NOT_SUPPORTED
.
Sintaxe
BOOL ExecuteUmsThread(
[in, out] PUMS_CONTEXT UmsThread
);
Parâmetros
[in, out] UmsThread
Um ponteiro para o contexto de thread UMS do thread de trabalho a ser executado.
Retornar valor
Se a função for bem-sucedida, ela não retornará um valor.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. Os códigos de erro possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O thread de trabalho ums especificado é temporariamente bloqueado pelo sistema. O chamador pode repetir a operação. |
|
Não há suporte para UMS. |
Comentários
A função ExecuteUmsThread carrega o estado do thread de trabalho ums especificado sobre o estado do thread do agendador UMS de chamada para que o thread de trabalho possa ser executado. O thread de trabalho é executado até que ele produz chamando a função UmsThreadYield , blocos ou termina.
Quando um thread de trabalho produz ou bloqueia, o sistema chama a função de ponto de entrada UmsSchedulerProc do thread do agendador. Quando um thread de trabalho bloqueado anteriormente é desbloqueado, o sistema enfileira o thread de trabalho para a lista de conclusão especificada com a função UpdateProcThreadAttribute quando o thread de trabalho foi criado.
A função ExecuteUmsThread não retorna, a menos que ocorra um erro. Se a função retornar ERROR_RETRY, o erro será transitório e a operação poderá ser repetida.
Se a função retornar um erro diferente de ERROR_RETRY, o agendador do aplicativo deverá marcar se o thread está suspenso ou encerrado chamando QueryUmsThreadInformation com UmsThreadIsSuspended ou UmsThreadIsTerminated, respectivamente. Outros erros possíveis incluem chamar a função em um thread que não é um thread do agendador UMS, passar um contexto de thread de trabalho umS inválido ou especificar um thread de trabalho que já está sendo executado em outro thread do agendador.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 (somente 64 bits) [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winbase.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Conjunto de APIs | api-ms-win-core-ums-l1-1-0 (introduzido no Windows 7) |