Новые возможности процессов и потоков
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. |