de.phhsnews.com


de.phhsnews.com / Warum gibt es keine Windows-Prozess-IDs mit ungeraden Nummern?

Warum gibt es keine Windows-Prozess-IDs mit ungeraden Nummern?


Wenn Sie gerne mit Windows experimentieren und im Lernprozess lernen, haben Sie vielleicht bemerkt, dass Windows-Prozess- und Thread-IDs geradzahlig sind Vielfache von vier. Warum das? Der heutige SuperUser Q & A-Post hat Antworten auf Fragen von neugierigen Lesern.

Die heutige Frage-Antwort-Sitzung kommt dank SuperUser zustande - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Die Frage

SuperUser-Leser Peter Hahndorf möchte wissen, warum es keine ungeraden Windows-Prozess-IDs gibt:

Es gibt viele Möglichkeiten, die Prozess-IDs in Windows zu betrachten. Verwenden von PowerShell:

Ich bekomme dieses Ergebnis:

Wie Sie sehen können, sind alle Prozess-IDs geradzahlig, nicht nur das, sie sind alle ein Vielfaches von vier. Sie können so hart aussehen, wie Sie möchten, und Sie werden niemals eine ungerade Prozess-ID finden, zumindest nicht in einer Version, die Windows NT-basiert ist. Was ist der Grund dafür?

Warum gibt es keine ungeraden Windows-Prozess-IDs?

Der Antwort

SuperUser-Mitwirkender DavidPostill hat die Antwort für uns:

Warum gibt es keinen ungeraden Windows-Prozess? IDs?

Derselbe Code, der Kernel-Handles zuweist, wird auch dazu verwendet, Prozess- und Thread-IDs zuzuweisen. Da Kernel-Handles ein Vielfaches von vier sind, sind dies auch Prozess- und Thread-IDs.

Warum sind Prozess- und Thread-IDs ein Vielfaches von vier?

Unter Windows NT-basierten Betriebssystemen sind Prozess- und Thread-IDs immer ein Vielfaches von vier. Ist das nur ein Zufall?

Ja, es ist nur ein Zufall, und Sie sollten sich nicht darauf verlassen, da es nicht Teil des Programmiervertrags ist. Beispielsweise waren Windows 95-Prozess- und Thread-IDs nicht immer ein Vielfaches von vier. Im Vergleich dazu ist der Grund, warum Kernel-Handles immer ein Vielfaches von vier sind, Teil der Spezifikation und wird für die absehbare Zukunft garantiert.

Prozess- und Thread-IDs sind ein Vielfaches von vier als Nebeneffekt der Code-Wiederverwendung. Der gleiche Code, der Kernel-Handles zuweist, wird auch verwendet, um Prozess- und Thread-IDs zuzuordnen. Da Kernel-Handles ein Vielfaches von vier sind, sind dies auch Prozess- und Thread-IDs. Dies ist ein Implementierungsdetail, also schreiben Sie keinen Code, der darauf angewiesen ist. Ich sage Ihnen nur, dass Sie Ihre Neugier befriedigen sollten.

Quelle: Warum sind Prozess- und Thread-IDs ein Vielfaches von vier?

Warum sind Kernel-Handles immer ein Vielfaches von vier?

Etwas, das nicht gut ist bekannt ist, dass die unteren zwei Bits von Kernel-Handles immer Null sind; mit anderen Worten, ihr numerischer Wert ist immer ein Vielfaches von vier. Beachten Sie, dass dies nur für Kernel-Handles gilt. Es gilt nicht für Pseudo-Handles oder andere Handle-Typen (USER-Handles, GDI-Handles, Multimedia-Handles usw.). Kernel-Handles sind Dinge, die Sie an die CloseHandle-Funktion übergeben können.

Dass mindestens das unterste Bit von Kernel-Handles immer Null ist, wird von der GetQueuedCompletionStatus-Funktion impliziert, die angibt, dass Sie das unterste Bit des Ereignishandle unterdrücken können Portbenachrichtigung Damit dies funktioniert, muss das untere Bit normalerweise Null sein.

Diese Information ist für die meisten Anwendungsentwickler, die Griffe weiterhin als undurchsichtige Werte behandeln sollen, nicht nützlich. Die Leute, die an Tag-Bits interessiert sind, sind diejenigen, die Low-Level-Klassenbibliotheken implementieren oder Kernel-Objekte in ein größeres Framework einbinden.

Quelle: Warum sind Kernel-Handles immer ein Vielfaches von vier?

Weiterführende Literatur

Die alte Neuigkeit: Praktische Entwicklung während der Evolution von Windows von Raymond Chen ( Principal Software Design Engineer bei Microsoft )


Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.


Wie sicher ist die Windows-Zwischenablage?

Wie sicher ist die Windows-Zwischenablage?

Es ist immer eine gute Idee, sich über die Sicherheit Ihrer Daten Sorgen zu machen, insbesondere wenn es um Ihre Anmeldedaten für Websites geht. Wie sicher ist die Windows-Zwischenablage? Der heutige SuperUser Q & A Post hat die Antwort auf die Frage eines besorgten Lesers. Die heutige Question & Answer Session kommt uns dank SuperUser - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites - zu Gute von Cyberwar "mit freundlicher Genehmigung von Charis Tsevis (Flickr) .

(how-to)

So stoppen Sie Windows 10 mit so vielen Daten

So stoppen Sie Windows 10 mit so vielen Daten

Windows 10 ist so konzipiert, dass es immer mit einem Betriebssystem verbunden ist, das stets auf dem neuesten Stand ist. Es ist die datenhungrigste Version von Windows noch, aber Sie können mit ein paar Tricks verhindern, dass sie in Ihrem Heimnetzwerk vollständig ausgeführt wird. Datennutzung pro Anwendung prüfen VERWANDT: Wie zu überwachen Ihre Netzwerknutzung in Windows 10 Trotz aller automatischen Updates von Windows 10 stammt der Großteil der Datennutzung auf Ihrem PC wahrscheinlich von den Anwendungen, die Sie verwenden.

(how-to)