Поделиться через


Что нового в процессах и потоках

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

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

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

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

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

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

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

 

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

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

 

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

Функция Описание
CreateUmsCompletionList
Создает список завершенных задач UMS.
CreateUmsThreadContext
Создает контекст потока UMS для представления рабочего потока UMS.
УдалитьUmsCompletionList
Удаляет указанный список завершения 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.

 

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

Структура Описание
КЭШ_ОТНОШЕНИЕ
Описывает атрибуты кэша.
GROUP_AFFINITY
Содержит специфическую для группы процессоров привязку, например, привязку потока.
GROUP_RELATIONSHIP
Содержит сведения о группах обработчиков.
NUMA_NODE_RELATIONSHIP
Содержит сведения о узле NUMA в группе обработчиков.
ИНФОРМАЦИЯ_О_ГРУППЕ_ПРОЦЕССОРА
Содержит число и сходство процессоров в группе процессоров.
PROCESSOR_NUMBER
Представляет логический процессор в группе процессоров.
ОТНОШЕНИЕ_ПРОЦЕССОРА
Содержит сведения о сходстве в группе обработчиков.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Содержит сведения о связях логических процессоров и связанного оборудования.
UMS_CREATE_THREAD_ATTRIBUTES
Задает атрибуты для рабочего потока UMS.
UMS_SCHEDULER_STARTUP_INFO
Указывает атрибуты для потока планировщика UMS