Neues in Prozessen und Threads
Windows 7 und Windows Server 2008 R2 enthalten die folgenden neuen Programmierelemente für Prozesse und Threads.
Neue Funktionen
Die 64-Bit-Versionen von Windows 7 und Windows Server 2008 R2 unterstützen mehr als 64 logische Prozessoren auf einem einzelnen Computer. Weitere Informationen finden Sie unter Prozessorgruppen.
Die Benutzermodusplanung (UMS) ist ein schlanker Mechanismus, mit dem Anwendungen ihre eigenen Threads planen können. Weitere Informationen finden Sie unter Planen des Benutzermodus.
Neue Funktionen
Die folgenden neuen Funktionen werden mit Prozessoren und Prozessorgruppen verwendet.
| Funktion | Beschreibung |
|---|---|
| CreateRemoteThreadEx |
Erstellt einen Thread, der im virtuellen Adressraum eines anderen Prozesses ausgeführt wird und optional erweiterte Attribute wie Prozessorgruppenaffinität angibt. |
| GetActiveProcessorCount |
Gibt die Anzahl der aktiven Prozessoren in einer Prozessorgruppe oder im System zurück. |
| GetActiveProcessorGroupCount |
Gibt die Anzahl der aktiven Prozessorgruppen im System zurück. |
| GetCurrentProcessorNumberEx |
Ruft die Prozessorgruppe und die Nummer des logischen Prozessors ab, in dem der aufrufende Thread ausgeführt wird. |
| GetLogicalProcessorInformationEx |
Ruft Informationen über die Beziehungen von logischen Prozessoren und zugehöriger Hardware ab. |
| GetMaximumProcessorCount |
Gibt die maximale Anzahl logischer Prozessoren zurück, über die eine Prozessorgruppe oder das System verfügen kann. |
| GetMaximumProcessorGroupCount |
Gibt die maximale Anzahl von Prozessorgruppen zurück, über die das System verfügen kann. |
| GetNumaAvailableMemoryNodeEx |
Ruft die Arbeitsspeichermenge ab, die im angegebenen Knoten als USHORT-Wert verfügbar ist. |
| GetNumaNodeNumberFromHandle |
Ruft den NUMA-Knoten ab, der dem zugrunde liegenden Gerät für ein Dateihand handle zugeordnet ist. |
| GetNumaNodeProcessorMaskEx |
Ruft die Prozessormaske für den angegebenen NUMA-Knoten als USHORT-Wert ab. |
| GetNumaProcessorNodeEx |
Ruft die Knotennummer des angegebenen logischen Prozessors als USHORT-Wert ab. |
| GetNumaProximityNodeEx |
Ruft die Knotennummer als USHORT-Wert für den angegebenen Näherungsbezeichner ab. |
| GetProcessGroupAffinity |
Ruft die Prozessorgruppenaffinität des angegebenen Prozesses ab. |
| GetProcessorSystemCycleTime |
Ruft die Zykluszeit ab, die jeder Prozessor in der angegebenen Gruppe für die Ausführung von verzögerten Prozeduraufrufen (DEFERRED Procedure Calls, DPCs) und Interruptdienstroutinen (ISRs) verwendet hat. |
| GetThreadGroupAffinity |
Ruft die Prozessorgruppenaffinität des angegebenen Threads ab. |
| GetThreadIdealProcessorEx |
Ruft die Prozessornummer des idealen Prozessors für den angegebenen Thread ab. |
| QueryIdleProcessorCycleTimeEx |
Ruft die akkumulierte Zykluszeit für den Leerlaufthread auf jedem logischen Prozessor in der angegebenen Prozessorgruppe ab. |
| SetThreadGroupAffinity |
Legt die Prozessorgruppenaffinität für den angegebenen Thread fest. |
| SetThreadIdealProcessorEx |
Legt den idealen Prozessor für den angegebenen Thread fest und ruft optional den vorherigen idealen Prozessor ab. |
Die folgenden neuen Funktionen werden mit Threadpools verwendet.
| Funktion | Beschreibung |
|---|---|
| QueryThreadpoolStackInformation |
Ruft die Stapelreserve- und Commitgrößen für Threads im angegebenen Threadpool ab. |
| SetThreadpoolCallbackPersistent |
Gibt an, dass der Rückruf in einem persistenten Thread ausgeführt werden soll. |
| SetThreadpoolCallbackPriority |
Gibt die Priorität einer Rückruffunktion relativ zu anderen Arbeitselementen im selben Threadpool an. |
| SetThreadpoolStackInformation |
Legt die Stapelreserve- und Commitgrößen für neue Threads im angegebenen Threadpool fest. |
Die folgenden neuen Funktionen werden mit UMS verwendet.
| Funktion | Beschreibung |
|---|---|
| CreateUmsCompletionList |
Erstellt eine UMS-Vervollständigungsliste. |
| CreateUmsThreadContext |
Erstellt einen UMS-Threadkontext zur Darstellung eines UMS-Arbeitsthreads. |
| DeleteUmsCompletionList |
Löscht die angegebene UMS-Vervollständigungsliste. Die Liste muss leer sein. |
| DeleteUmsThreadContext |
Löscht den angegebenen UMS-Threadkontext. Der Thread muss beendet werden. |
| DequeueUmsCompletionListItems |
Ruft UMS-Arbeitsthreads aus der angegebenen UMS-Vervollständigungsliste ab. |
| EnterUmsSchedulingMode |
Konvertiert den aufrufenden Thread in einen UMS-Planerthread. |
| ExecuteUmsThread |
Führt den angegebenen UMS-Arbeitsthread aus. |
| GetCurrentUmsThread |
Gibt den UMS-Threadkontext des aufrufenden UMS-Threads zurück. |
| GetNextUmsListItem |
Gibt den nächsten UMS-Threadkontext in einer Liste von UMS-Threadkontexten zurück. |
| GetUmsCompletionListEvent |
Ruft ein Handle für das Ereignis ab, das der angegebenen UMS-Vervollständigungsliste zugeordnet ist. |
| QueryUmsThreadInformation |
Ruft Informationen zum angegebenen UMS-Arbeitsthread ab. |
| SetUmsThreadInformation |
Legt anwendungsspezifische Kontextinformationen für den angegebenen UMS-Arbeitsthread fest. |
| UmsSchedulerProc |
Die anwendungsdefinierte UMS-Planereinstiegspunktfunktion, die einer UMS-Vervollständigungsliste zugeordnet ist. |
| UmsThreadYield |
Gibt die Steuerung an den UMS-Planerthread zurück, in dem der aufrufende UMS-Arbeitsthread ausgeführt wird. |
Neue Strukturen
| Struktur | Beschreibung |
|---|---|
| _CACHEBEZIEHUNG |
Beschreibt Cacheattribute. |
| _GRUPPENAFFINITÄT |
Enthält eine prozessorgruppenspezifische Affinität, z. B. die Affinität eines Threads. |
| GROUP _ RELATIONSHIP |
Enthält Informationen zu Prozessorgruppen. |
| _NUMA-KNOTENBEZIEHUNG _ |
Enthält Informationen zu einem NUMA-Knoten in einer Prozessorgruppe. |
| _ _ PROZESSORGRUPPENINFORMATIONEN |
Enthält die Anzahl und Affinität der Prozessoren in einer Prozessorgruppe. |
| _PROZESSORNUMMER |
Stellt einen logischen Prozessor in einer Prozessorgruppe dar. |
| _PROZESSORBEZIEHUNG |
Enthält Informationen zur Affinität innerhalb einer Prozessorgruppe. |
| SYSTEM _ LOGICAL _ PROCESSOR _ INFORMATION _ EX |
Enthält Informationen über die Beziehungen von logischen Prozessoren und zugehöriger Hardware. |
| UMS _ CREATE _ THREAD _ ATTRIBUTES |
Gibt Attribute für einen UMS-Arbeitsthread an. |
| STARTINFORMATIONEN ZUM UMS _ SCHEDULER _ _ |
Gibt Attribute für einen UMS-Planerthread an |