Condividi tramite


Funzione ExecuteUmsThread (winbase.h)

Esegue il thread di lavoro UMS specificato.

Avviso

A partire da Windows 11, la pianificazione in modalità utente non è supportata. Tutte le chiamate hanno esito negativo con l'errore ERROR_NOT_SUPPORTED.

Sintassi

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

Parametri

[in, out] UmsThread

Puntatore al contesto del thread UMS del thread di lavoro da eseguire.

Valore restituito

Se la funzione ha esito positivo, non restituisce un valore.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError. I codici di errore possibili includono quanto segue.

Codice restituito Descrizione
ERROR_RETRY
Il thread di lavoro UMS specificato è temporaneamente bloccato dal sistema. Il chiamante può ripetere l'operazione.
ERROR_NOT_SUPPORTED
UMS non è supportato.

Commenti

La funzione ExecuteUmsThread carica lo stato del thread di lavoro UMS specificato sullo stato del thread dell'utilità di pianificazione UMS chiamante in modo che il thread di lavoro possa essere eseguito. Il thread di lavoro viene eseguito fino a quando non restituisce chiamando la funzione UmsThreadYield , i blocchi o termina.

Quando un thread di lavoro restituisce o blocca, il sistema chiama la funzione di ingresso UmsSchedulerProc del thread di pianificazione. Quando un thread di lavoro bloccato in precedenza viene sbloccato, il thread di sistema accoda il thread di lavoro all'elenco di completamento specificato con la funzione UpdateProcThreadAttribute quando è stato creato il thread di lavoro.

La funzione ExecuteUmsThread non restituisce a meno che non si verifichi un errore. Se la funzione restituisce ERROR_RETRY, l'errore è transitorio e l'operazione può essere riprovata.

Se la funzione restituisce un errore diverso da ERROR_RETRY, l'utilità di pianificazione dell'applicazione deve verificare se il thread viene sospeso o terminato chiamando rispettivamente QueryUmsThreadInformation con UmsThreadIsSuspended o UmsThreadIsTerminated. Altri possibili errori includono la chiamata alla funzione in un thread che non è un thread dell'utilità di pianificazione UMS, passando un contesto di thread di lavoro UMS non valido o specificando un thread di lavoro già in esecuzione in un altro thread dell'utilità di pianificazione.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 (solo a 64 bit) [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll
Set di API api-ms-win-core-ums-l1-1-0 (introdotta in Windows 7)

Vedi anche

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute