Share via


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
ERROR_RETRY
O thread de trabalho ums especificado é temporariamente bloqueado pelo sistema. O chamador pode repetir a operação.
ERROR_NOT_SUPPORTED
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)

Confira também

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute