Nyheter i processer och trådar

Windows 7 och Windows Server 2008 R2 innehåller följande nya programmeringselement för processer och trådar.

Nya funktioner

64-bitarsversionerna av Windows 7 och Windows Server 2008 R2 stöder mer än 64 logiska processorer på en enda dator. Mer information finns i processorgrupper.

Schemaläggning i användarläge (UMS) är en enkel mekanism som program kan använda för att schemalägga sina egna trådar. Mer information finns i User-Mode Schemaläggning.

Nya funktioner

Följande nya funktioner används med processorer och processorgrupper.

Funktion Beskrivning
CreateRemoteThreadEx
Skapar en tråd som körs i det virtuella adressutrymmet i en annan process och kan också ange utökade attribut, till exempel tillhörighet mellan processorgrupper.
GetActiveProcessorCount
Returnerar antalet aktiva processorer i en processorgrupp eller i systemet.
GetActiveProcessorGroupCount
Returnerar antalet aktiva processorgrupper i systemet.
GetCurrentProcessorNumberEx
Hämtar processorgruppen och antalet av den logiska processorn på vilket den anropande tråden körs.
GetLogicalProcessorInformationEx
Hämtar information om relationerna mellan logiska processorer och relaterad maskinvara.
GetMaximumProcessorCount
Returnerar det maximala antalet logiska processorer som en processorgrupp eller systemet kan ha.
GetMaximumProcessorGroupCount
Returnerar det maximala antalet processorgrupper som systemet kan ha.
GetNumaAvailableMemoryNodeEx
Hämtar mängden minne som är tillgängligt i den angivna noden som ett USHORT-värde.
GetNumaNodeNumberFromHandle
Hämtar NUMA-noden som är associerad med den underliggande enheten för ett filhandtag.
GetNumaNodeProcessorMaskEx
Hämtar processormasken för den angivna NUMA-noden som ett USHORT-värde.
GetNumaProcessorNodeEx
Hämtar nodnumret för den angivna logiska processorn som ett USHORT-värde.
GetNumaProximityNodeEx
Hämtar nodnumret som ett USHORT-värde för den angivna närhetsidentifieraren.
GetProcessGroupAffinity
Hämtar processorgrupptillhörigheten för den angivna processen.
GetProcessorSystemCycleTime
Hämtar den cykeltid som varje processor i den angivna gruppen har använt för att köra uppskjutna proceduranrop (DPC) och avbrottsrutiner (ISR).
GetThreadGroupAffinity
Hämtar tillhörigheten mellan processorgrupper och den angivna tråden.
GetThreadIdealProcessorEx
Hämtar processornumret för den perfekta processorn för den angivna tråden.
QueryIdleProcessorCycleTimeEx
Hämtar den ackumulerade cykeltiden för den inaktiva tråden på varje logisk processor i den angivna processorgruppen.
SetThreadGroupAffinity
Anger tillhörighet för processorgrupp för den angivna tråden.
SetThreadIdealProcessorEx
Anger den idealiska processorn för den angivna tråden och hämtar eventuellt den tidigare ideala processorn.

 

Följande nya funktioner används med trådpooler.

Funktion Beskrivning
QueryThreadpoolStackInformation
Hämtar stackreserven och allokeringsstorlekarna för trådar i den angivna trådpoolen.
SetThreadpoolCallbackPersistent
Anger att återanropet ska köras på en beständig tråd.
SetThreadpoolCallbackPriority
Anger prioriteten för en återanropsfunktion i förhållande till andra arbetsobjekt i samma trådpool.
SetThreadpoolStackInformation
Anger stackreserven och incheckningsstorlekarna för nya trådar i den angivna trådpoolen.

 

Följande nya funktioner används med UMS.

Funktion Beskrivning
CreateUmsCompletionList
Skapar en UMS-slutförandelista.
CreateUmsThreadContext
Skapar en UMS-trådkontext som representerar en UMS-arbetstråd.
DeleteUmsCompletionList
Tar bort den angivna UMS-slutlistan. Listan måste vara tom.
DeleteUmsThreadContext
Tar bort den angivna UMS-trådkontexten. Tråden måste avslutas.
DequeueUmsCompletionListItems
Hämtar UMS-arbetstrådar från den angivna UMS-slutförandelistan.
AngeUmsSchemaläggningsläge
Konverterar den anropande tråden till en UMS-schemaläggartråd.
ExecuteUmsThread
Kör den angivna UMS-arbetstråden.
GetCurrentUmsThread
Returnerar UMS-trådkontexten för den anropande UMS-tråden.
GetNextUmsListItem
Returnerar nästa UMS-trådkontext i en lista över UMS-trådkontexter.
GetUmsCompletionListEvent
Hämtar en referens till händelsen som är associerad med den angivna UMS-slutförandelistan.
QueryUmsThreadInformation
Hämtar information om den angivna UMS-arbetstråden.
SetUmsThreadInformation
Anger programspecifik kontextinformation för den angivna UMS-arbetstråden.
UmsSchedulerProc
Den programdefinierade ums-schemaläggarens startpunktsfunktion som är associerad med en UMS-slutförandelista.
UmsThreadYield
Ger kontroll till UMS-schemaläggartråden där den anropande UMS-arbetstråden körs.

 

Nya strukturer

Struktur Beskrivning
CACHE_RELATIONSHIP
Beskriver cacheattribut.
GROUP_AFFINITY
Innehåller en processorgruppspecifik tillhörighet, till exempel tillhörigheten för en tråd.
GRUPPRELATION
Innehåller information om processorgrupper.
NUMA_NODE_RELATIONSHIP
Innehåller information om en NUMA-nod i en processorgrupp.
PROCESSOR_GROUP_INFO
Innehåller antalet och tillhörigheten för processorer i en processorgrupp.
PROCESSOR_NUMBER
Representerar en logisk processor i en processorgrupp.
PROCESSOR_RELATIONSHIP
Innehåller information om tillhörighet inom en processorgrupp.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Innehåller information om relationerna mellan logiska processorer och relaterad maskinvara.
UMS_CREATE_THREAD_ATTRIBUTES
Anger attribut för en UMS-arbetstråd.
UMS_SCHEDULER_STARTUP_INFO
Anger attribut för en UMS-schemaläggartråd