Новые возможности процессов и потоков

Windows 7 и Windows Server 2008 R2 включают следующие новые элементы программирования для процессов и потоков.

Новые возможности

64-разрядные версии Windows 7 и Windows Server 2008 R2 поддерживают более 64 логических процессоров на одном компьютере. Дополнительные сведения см. в разделе Группы процессоров.

Планирование в пользовательском режиме (UMS) — это упрощенный механизм, который приложения могут использовать для планирования собственных потоков. Дополнительные сведения см. в разделе Планирование в пользовательском режиме.

Новые функции

Следующие новые функции используются с процессорами и группами процессоров.

Функция Описание
CreateRemoteThreadEx
Создает поток, который выполняется в виртуальном адресном пространстве другого процесса и при необходимости задает расширенные атрибуты, такие как сходство групп процессоров.
GetActiveProcessorCount
Возвращает число активных процессоров в группе процессоров или в системе.
GetActiveProcessorGroupCount
Возвращает количество активных групп процессоров в системе.
GetCurrentProcessorNumberEx
Извлекает группу процессоров и номер логического процессора, в котором выполняется вызывающий поток.
GetLogicalProcessorInformationEx
Извлекает сведения о связях логических процессоров и связанного оборудования.
GetMaximumProcessorCount
Возвращает максимальное количество логических процессоров, которое может иметь группа процессоров или система.
GetMaximumProcessorGroupCount
Возвращает максимальное количество групп процессоров, которое может иметь система.
GetNumaAvailableMemoryNodeEx
Извлекает объем памяти, доступный в указанном узле, в виде значения USHORT.
GetNumaNodeNumberFromHandle
Извлекает узел NUMA, связанный с базовым устройством, для дескриптора файла.
GetNumaNodeProcessorMaskEx
Извлекает маску процессора для указанного узла NUMA в качестве значения USHORT.
GetNumaProcessorNodeEx
Извлекает номер узла указанного логического процессора в виде значения USHORT.
GetNumaProximityNodeEx
Извлекает номер узла в виде значения USHORT для указанного идентификатора близкого взаимодействия.
GetProcessGroupAffinity
Извлекает сходство группы процессоров для указанного процесса.
GetProcessorSystemCycleTime
Извлекает время цикла, затраченное каждым процессором в указанной группе на выполнение отложенных вызовов процедур (DPC) и подпрограмм обслуживания прерываний (ISR).
GetThreadGroupAffinity
Извлекает сходство группы процессоров указанного потока.
GetThreadIdealProcessorEx
Извлекает номер идеального процессора для указанного потока.
QueryIdleProcessorCycleTimeEx
Извлекает накопленный цикл для потока простоя на каждом логическом процессоре в указанной группе процессоров.
SetThreadGroupAffinity
Задает сходство групп процессоров для указанного потока.
SetThreadIdealProcessorEx
Задает идеальный процессор для указанного потока и при необходимости получает предыдущий идеальный процессор.

 

Следующие новые функции используются с пулами потоков.

Функция Описание
QueryThreadpoolStackInformation
Извлекает размеры резервирования стека и фиксации для потоков в указанном пуле потоков.
SetThreadpoolCallbackPersistent
Указывает, что обратный вызов должен выполняться в постоянном потоке.
SetThreadpoolCallbackPriority
Указывает приоритет функции обратного вызова относительно других рабочих элементов в том же пуле потоков.
SetThreadpoolStackInformation
Задает размеры резервирования стека и фиксации для новых потоков в указанном пуле потоков.

 

Следующие новые функции используются с UMS.

Функция Описание
CreateUmsCompletionList
Создает список завершения UMS.
CreateUmsThreadContext
Создает контекст потока UMS для представления рабочего потока UMS.
DeleteUmsCompletionList
Удаляет указанный список завершения UMS. Список должен быть пустым.
DeleteUmsThreadContext
Удаляет указанный контекст потока UMS. Поток должен быть завершен.
DequeueUmsCompletionListItems
Извлекает рабочие потоки UMS из указанного списка завершения UMS.
EnterUmsSchedulingMode
Преобразует вызывающий поток в поток планировщика UMS.
ExecuteUmsThread
Запускает указанный рабочий поток UMS.
GetCurrentUmsThread
Возвращает контекст потока UMS вызывающего потока UMS.
GetNextUmsListItem
Возвращает следующий контекст потока UMS в списке контекстов потоков UMS.
GetUmsCompletionListEvent
Извлекает дескриптор события, связанного с указанным списком завершения UMS.
QueryUmsThreadInformation
Извлекает сведения об указанном рабочем потоке UMS.
SetUmsThreadInformation
Задает сведения о контексте конкретного приложения для указанного рабочего потока UMS.
UmsSchedulerProc
Определяемая приложением функция точки входа планировщика UMS, связанная со списком завершения UMS.
UmsThreadYield
Возвращает управление потоку планировщика UMS, в котором выполняется вызывающий рабочий поток UMS.

 

Новые структуры

Структура Описание
CACHE_RELATIONSHIP
Описывает атрибуты кэша.
GROUP_AFFINITY
Содержит сходство, зависят от группы процессора, например сходство потока.
GROUP_RELATIONSHIP
Содержит сведения о группах процессоров.
NUMA_NODE_RELATIONSHIP
Содержит сведения об узле NUMA в группе процессоров.
PROCESSOR_GROUP_INFO
Содержит количество и сходство процессоров в группе процессоров.
PROCESSOR_NUMBER
Представляет логический процессор в группе процессоров.
PROCESSOR_RELATIONSHIP
Содержит сведения о сходстве в группе процессоров.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Содержит сведения о связях логических процессоров и связанного оборудования.
UMS_CREATE_THREAD_ATTRIBUTES
Задает атрибуты для рабочего потока UMS.
UMS_SCHEDULER_STARTUP_INFO
Задает атрибуты для потока планировщика UMS.