Novidades em processos e threads

O Windows 7 e o Windows Server 2008 R2 incluem os seguintes novos elementos de programação para processos e threads.

Novos recursos

As versões de 64 bits do Windows 7 e do Windows Server 2008 R2 dão suporte a mais de 64 processadores lógicos em um único computador. Para obter mais informações, consulte Grupos de processadores.

O UMS (agendamento no modo de usuário) é um mecanismo leve que os aplicativos podem usar para agendar seus próprios threads. Para obter mais informações, consulte Agendamento do modo de usuário.

Novas funções

As novas funções a seguir são usadas com processadores e grupos de processadores.

Função Descrição
CreateRemoteThreadEx
Cria um thread que é executado no espaço de endereço virtual de outro processo e, opcionalmente, especifica atributos estendidos, como afinidade de grupo de processadores.
GetActiveProcessorCount
Retorna o número de processadores ativos em um grupo de processadores ou no sistema.
GetActiveProcessorGroupCount
Retorna o número de grupos de processadores ativos no sistema.
GetCurrentProcessorNumberEx
Recupera o grupo de processadores e o número do processador lógico no qual o thread de chamada está em execução.
GetLogicalProcessorInformationEx
Recupera informações sobre as relações de processadores lógicos e hardware relacionado.
GetMaximumProcessorCount
Retorna o número máximo de processadores lógicos que um grupo de processadores ou o sistema pode ter.
GetMaximumProcessorGroupCount
Retorna o número máximo de grupos de processadores que o sistema pode ter.
GetNumaAvailableMemoryNodeEx
Recupera a quantidade de memória disponível no nó especificado como um valor USHORT.
GetNumaNodeNumberFromHandle
Recupera o nó NUMA associado ao dispositivo subjacente para um identificador de arquivo.
GetNumaNodeProcessorMaskEx
Recupera a máscara de processador para o nó NUMA especificado como um valor USHORT.
GetNumaProcessorNodeEx
Recupera o número do nó do processador lógico especificado como um valor USHORT.
GetNumaProximityNodeEx
Recupera o número do nó como um valor USHORT para o identificador de proximidade especificado.
GetProcessGroupAffinity
Recupera a afinidade do grupo de processadores do processo especificado.
GetProcessorSystemCycleTime
Recupera o tempo de ciclo que cada processador no grupo especificado gastou executando DPCs (chamadas de procedimento adiado) e ISRs (rotinas de serviço de interrupção).
GetThreadGroupAffinity
Recupera a afinidade do grupo de processadores do thread especificado.
GetThreadIdealProcessorEx
Recupera o número do processador ideal para o thread especificado.
QueryIdleProcessorCycleTimeEx
Recupera o tempo de ciclo acumulado para o thread ocioso em cada processador lógico no grupo de processadores especificado.
SetThreadGroupAffinity
Define a afinidade do grupo de processadores para o thread especificado.
SetThreadIdealProcessorEx
Define o processador ideal para o thread especificado e, opcionalmente, recupera o processador ideal anterior.

 

As novas funções a seguir são usadas com pools de threads.

Função Descrição
QueryThreadpoolStackInformation
Recupera a reserva de pilha e os tamanhos de confirmação para threads no pool de threads especificado.
SetThreadpoolCallbackPersistent
Especifica que o retorno de chamada deve ser executado em um thread persistente.
SetThreadpoolCallbackPriority
Especifica a prioridade de uma função de retorno de chamada em relação a outros itens de trabalho no mesmo pool de threads.
SetThreadpoolStackInformation
Define os tamanhos de reserva de pilha e confirmação para novos threads no pool de threads especificado.

 

As novas funções a seguir são usadas com UMS.

Função Descrição
CreateUmsCompletionList
Cria uma lista de conclusão de UMS.
CreateUmsThreadContext
Cria um contexto de thread UMS para representar um thread de trabalho umS.
DeleteUmsCompletionList
Exclui a lista de conclusão de UMS especificada. A lista deve estar vazia.
DeleteUmsThreadContext
Exclui o contexto de thread UMS especificado. O thread deve ser encerrado.
DequeueUmsCompletionListItems
Recupera threads de trabalho ums da lista de conclusão umS especificada.
EnterUmsSchedulingMode
Converte o thread de chamada em um thread do agendador UMS.
ExecuteUmsThread
Executa o thread de trabalho ums especificado.
GetCurrentUmsThread
Retorna o contexto de thread UMS do thread UMS de chamada.
GetNextUmsListItem
Retorna o próximo contexto de thread UMS em uma lista de contextos de thread UMS.
GetUmsCompletionListEvent
Recupera um identificador para o evento associado à lista de conclusão de UMS especificada.
QueryUmsThreadInformation
Recupera informações sobre o thread de trabalho ums especificado.
SetUmsThreadInformation
Define informações de contexto específicas do aplicativo para o thread de trabalho ums especificado.
UmsSchedulerProc
A função de ponto de entrada do agendador UMS definida pelo aplicativo associada a uma lista de conclusão de UMS.
UmsThreadYield
Gera controle para o thread do agendador UMS no qual o thread de trabalho umS de chamada está em execução.

 

Novas estruturas

Estrutura Descrição
CACHE_RELATIONSHIP
Descreve os atributos de cache.
GROUP_AFFINITY
Contém uma afinidade específica do grupo de processadores, como a afinidade de um thread.
GROUP_RELATIONSHIP
Contém informações sobre grupos de processadores.
NUMA_NODE_RELATIONSHIP
Contém informações sobre um nó NUMA em um grupo de processadores.
PROCESSOR_GROUP_INFO
Contém o número e a afinidade dos processadores em um grupo de processadores.
PROCESSOR_NUMBER
Representa um processador lógico em um grupo de processadores.
PROCESSOR_RELATIONSHIP
Contém informações sobre afinidade em um grupo de processadores.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Contém informações sobre as relações de processadores lógicos e hardware relacionado.
UMS_CREATE_THREAD_ATTRIBUTES
Especifica atributos para um thread de trabalho umS.
UMS_SCHEDULER_STARTUP_INFO
Especifica atributos para um thread do agendador UMS