Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 |