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 del punto di ingresso UmsSchedulerProc del thread dell'utilità di pianificazione. Quando un thread di lavoro bloccato in precedenza viene sbloccato, il sistema accoda il thread di lavoro all'elenco di completamento specificato con la funzione UpdateProcThreadAttribute al momento della creazione del 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 ritentata.

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

Requisiti

   
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 (introdotto in Windows 7)

Vedi anche

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute