Что нового в процессах и потоках
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 |