What's New in Processes and Threads
Windows 7 and Windows Server 2008 R2 include the following new programming elements for processes and threads.
New Capabilities
The 64-bit versions of Windows 7 and Windows Server 2008 R2 support more than 64 logical processors on a single computer. For more information, see Processor Groups.
User-mode scheduling (UMS) is a lightweight mechanism that applications can use to schedule their own threads. For more information, see User-Mode Scheduling.
New Functions
The following new functions are used with processors and processor groups.
Function | Description |
---|---|
CreateRemoteThreadEx |
Creates a thread that runs in the virtual address space of another process and optionally specifies extended attributes such as processor group affinity. |
GetActiveProcessorCount |
Returns the number of active processors in a processor group or in the system. |
GetActiveProcessorGroupCount |
Returns the number of active processor groups in the system. |
GetCurrentProcessorNumberEx |
Retrieves the processor group and number of the logical processor in which the calling thread is running. |
GetLogicalProcessorInformationEx |
Retrieves information about the relationships of logical processors and related hardware. |
GetMaximumProcessorCount |
Returns the maximum number of logical processors that a processor group or the system can have. |
GetMaximumProcessorGroupCount |
Returns the maximum number of processor groups that the system can have. |
GetNumaAvailableMemoryNodeEx |
Retrieves the amount of memory that is available in the specified node as a USHORT value. |
GetNumaNodeNumberFromHandle |
Retrieves the NUMA node associated with the underlying device for a file handle. |
GetNumaNodeProcessorMaskEx |
Retrieves the processor mask for the specified NUMA node as a USHORT value. |
GetNumaProcessorNodeEx |
Retrieves the node number of the specified logical processor as a USHORT value. |
GetNumaProximityNodeEx |
Retrieves the node number as a USHORT value for the specified proximity identifier. |
GetProcessGroupAffinity |
Retrieves the processor group affinity of the specified process. |
GetProcessorSystemCycleTime |
Retrieves the cycle time each processor in the specified group spent executing deferred procedure calls (DPCs) and interrupt service routines (ISRs). |
GetThreadGroupAffinity |
Retrieves the processor group affinity of the specified thread. |
GetThreadIdealProcessorEx |
Retrieves the processor number of the ideal processor for the specified thread. |
QueryIdleProcessorCycleTimeEx |
Retrieves the accumulated cycle time for the idle thread on each logical processor in the specified processor group. |
SetThreadGroupAffinity |
Sets the processor group affinity for the specified thread. |
SetThreadIdealProcessorEx |
Sets the ideal processor for the specified thread and optionally retrieves the previous ideal processor. |
The following new functions are used with thread pools.
Function | Description |
---|---|
QueryThreadpoolStackInformation |
Retrieves the stack reserve and commit sizes for threads in the specified thread pool. |
SetThreadpoolCallbackPersistent |
Specifies that the callback should run on a persistent thread. |
SetThreadpoolCallbackPriority |
Specifies the priority of a callback function relative to other work items in the same thread pool. |
SetThreadpoolStackInformation |
Sets the stack reserve and commit sizes for new threads in the specified thread pool. |
The following new functions are used with UMS.
Function | Description |
---|---|
CreateUmsCompletionList |
Creates a UMS completion list. |
CreateUmsThreadContext |
Creates a UMS thread context to represent a UMS worker thread. |
DeleteUmsCompletionList |
Deletes the specified UMS completion list. The list must be empty. |
DeleteUmsThreadContext |
Deletes the specified UMS thread context. The thread must be terminated. |
DequeueUmsCompletionListItems |
Retrieves UMS worker threads from the specified UMS completion list. |
EnterUmsSchedulingMode |
Converts the calling thread into a UMS scheduler thread. |
ExecuteUmsThread |
Runs the specified UMS worker thread. |
GetCurrentUmsThread |
Returns the UMS thread context of the calling UMS thread. |
GetNextUmsListItem |
Returns the next UMS thread context in a list of UMS thread contexts. |
GetUmsCompletionListEvent |
Retrieves a handle to the event associated with the specified UMS completion list. |
QueryUmsThreadInformation |
Retrieves information about the specified UMS worker thread. |
SetUmsThreadInformation |
Sets application-specific context information for the specified UMS worker thread. |
UmsSchedulerProc |
The application-defined UMS scheduler entry point function associated with a UMS completion list. |
UmsThreadYield |
Yields control to the UMS scheduler thread on which the calling UMS worker thread is running. |
New Structures
Structure | Description |
---|---|
CACHE_RELATIONSHIP |
Describes cache attributes. |
GROUP_AFFINITY |
Contains a processor group-specific affinity, such as the affinity of a thread. |
GROUP_RELATIONSHIP |
Contains information about processor groups. |
NUMA_NODE_RELATIONSHIP |
Contains information about a NUMA node in a processor group. |
PROCESSOR_GROUP_INFO |
Contains the number and affinity of processors in a processor group. |
PROCESSOR_NUMBER |
Represents a logical processor in a processor group. |
PROCESSOR_RELATIONSHIP |
Contains information about affinity within a processor group. |
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX |
Contains information about the relationships of logical processors and related hardware. |
UMS_CREATE_THREAD_ATTRIBUTES |
Specifies attributes for a UMS worker thread. |
UMS_SCHEDULER_STARTUP_INFO |
Specifies attributes for a UMS scheduler thread |
Phản hồi
https://aka.ms/ContentUserFeedback.
Sắp ra mắt: Trong năm 2024, chúng tôi sẽ dần gỡ bỏ Sự cố với GitHub dưới dạng cơ chế phản hồi cho nội dung và thay thế bằng hệ thống phản hồi mới. Để biết thêm thông tin, hãy xem:Gửi và xem ý kiến phản hồi dành cho