Novità dei processi e dei thread

Windows 7 e Windows Server 2008 R2 includono i nuovi elementi di programmazione seguenti per i processi e i thread.

Nuove funzionalità

Le versioni a 64 bit di Windows 7 e Windows Server 2008 R2 supportano più di 64 processori logici in un singolo computer. Per altre informazioni, vedere Gruppi di processori.

La pianificazione in modalità utente (UMS) è un meccanismo leggero che le applicazioni possono usare per pianificare i propri thread. Per altre informazioni, vedere Pianificazione in modalità utente.

Funzioni nuove

Le nuove funzioni seguenti vengono usate con processori e gruppi di processori.

Funzione Descrizione
CreateRemoteThreadEx
Crea un thread eseguito nello spazio indirizzi virtuale di un altro processo e specifica facoltativamente attributi estesi, ad esempio affinità del gruppo di processori.
GetActiveProcessorCount
Restituisce il numero di processori attivi in un gruppo di processori o nel sistema.
GetActiveProcessorGroupCount
Restituisce il numero di gruppi di processori attivi nel sistema.
GetCurrentProcessorNumberEx
Recupera il gruppo di processori e il numero del processore logico in cui è in esecuzione il thread chiamante.
GetLogicalProcessorInformationEx
Recupera informazioni sulle relazioni tra processori logici e hardware correlato.
GetMaximumProcessorCount
Restituisce il numero massimo di processori logici che un gruppo di processori o il sistema può avere.
GetMaximumProcessorGroupCount
Restituisce il numero massimo di gruppi di processori che il sistema può avere.
GetNumaAvailableMemoryNodeEx
Recupera la quantità di memoria disponibile nel nodo specificato come valore USHORT.
GetNumaNodeNumberFromHandle
Recupera il nodo NUMA associato al dispositivo sottostante per un handle di file.
GetNumaNodeProcessorMaskEx
Recupera la maschera del processore per il nodo NUMA specificato come valore USHORT.
GetNumaProcessorNodeEx
Recupera il numero di nodo del processore logico specificato come valore USHORT.
GetNumaProximityNodeEx
Recupera il numero di nodo come valore USHORT per l'identificatore di prossimità specificato.
GetProcessGroupAffinity
Recupera l'affinità del gruppo di processori del processo specificato.
GetProcessorSystemCycleTime
Recupera il tempo di ciclo per ogni processore nel gruppo specificato trascorso l'esecuzione di chiamate di routine posticipate (DPCS) e interruzioni delle routine del servizio (ISR).
GetThreadGroupAffinity
Recupera l'affinità del gruppo di processori del thread specificato.
GetThreadIdealProcessorEx
Recupera il numero di processore del processore ideale per il thread specificato.
QueryIdleProcessorCycleTimeEx
Recupera il tempo di ciclo accumulato per il thread inattiva in ogni processore logico nel gruppo di processori specificato.
SetThreadGroupAffinity
Imposta l'affinità del gruppo di processori per il thread specificato.
SetThreadIdealProcessorEx
Imposta il processore ideale per il thread specificato e recupera facoltativamente il processore ideale precedente.

 

Le nuove funzioni seguenti vengono usate con pool di thread.

Funzione Descrizione
QueryThreadpoolStackInformation
Recupera le dimensioni di riserva e commit dello stack per i thread nel pool di thread specificato.
SetThreadpoolCallbackPersistent
Specifica che il callback deve essere eseguito in un thread persistente.
SetThreadpoolCallbackPriority
Specifica la priorità di una funzione di callback rispetto ad altri elementi di lavoro nello stesso pool di thread.
SetThreadpoolStackInformation
Imposta le dimensioni di riserva e commit dello stack per i nuovi thread nel pool di thread specificato.

 

Le nuove funzioni seguenti vengono usate con UMS.

Funzione Descrizione
CreateUmsCompletionList
Crea un elenco di completamento di UMS.
CreateUmsThreadContext
Crea un contesto di thread UMS per rappresentare un thread di lavoro UMS.
DeleteUmsCompletionList
Elimina l'elenco di completamento UMS specificato. L'elenco deve essere vuoto.
DeleteUmsThreadContext
Elimina il contesto del thread UMS specificato. Il thread deve essere terminato.
DequeueUmsCompletionListItems
Recupera i thread di lavoro UMS dall'elenco di completamento UMS specificato.
EnterUmsSchedulingMode
Converte il thread chiamante in un thread dell'utilità di pianificazione UMS.
ExecuteUmsThread
Esegue il thread di lavoro UMS specificato.
GetCurrentUmsThread
Restituisce il contesto del thread UMS del thread UMS chiamante.
GetNextUmsListItem
Restituisce il contesto del thread UMS successivo in un elenco di contesti di thread UMS.
GetUmsCompletionListEvent
Recupera un handle all'evento associato all'elenco di completamento UMS specificato.
QueryUmsThreadInformation
Recupera informazioni sul thread di lavoro UMS specificato.
SetUmsThreadInformation
Imposta informazioni di contesto specifiche dell'applicazione per il thread di lavoro UMS specificato.
UmsSchedulerProc
Funzione del punto di ingresso dell'utilità di pianificazione UMS definita dall'applicazione associata a un elenco di completamento di UMS.
UmsThreadYield
Restituisce il controllo al thread dell'utilità di pianificazione UMS in cui è in esecuzione il thread di lavoro UMS chiamante.

 

Nuove strutture

Struttura Descrizione
CACHE_RELATIONSHIP
Descrive gli attributi della cache.
GROUP_AFFINITY
Contiene un'affinità specifica del gruppo di processori, ad esempio l'affinità di un thread.
GROUP_RELATIONSHIP
Contiene informazioni sui gruppi di processori.
NUMA_NODE_RELATIONSHIP
Contiene informazioni su un nodo NUMA in un gruppo di processori.
PROCESSOR_GROUP_INFO
Contiene il numero e l'affinità dei processori in un gruppo di processori.
PROCESSOR_NUMBER
Rappresenta un processore logico in un gruppo di processori.
PROCESSOR_RELATIONSHIP
Contiene informazioni sull'affinità all'interno di un gruppo di processori.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Contiene informazioni sulle relazioni tra processori logici e hardware correlato.
UMS_CREATE_THREAD_ATTRIBUTES
Specifica gli attributi per un thread di lavoro UMS.
UMS_SCHEDULER_STARTUP_INFO
Specifica gli attributi per un thread dell'utilità di pianificazione UMS