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 |