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 |