phhsnews.com


phhsnews.com / Pourquoi n'y a-t-il pas d'identifiants de processus Windows numérotés différemment?

Pourquoi n'y a-t-il pas d'identifiants de processus Windows numérotés différemment?


Si vous aimez bricoler Windows et apprendre au fur et à mesure, vous avez peut-être remarqué que les identifiants de processus et de threads Windows multiples de quatre. Pourquoi donc?

La session de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement de sites Web Q & A géré par la communauté.

La question

Lecteur SuperUser Peter Hahndorf veut savoir pourquoi il n'y a pas d'ID de processus Windows impairs:

Il y a plusieurs façons de regarder les identifiants de processus dans Windows. Utilisation de PowerShell:

J'obtiens ce résultat:

Comme vous pouvez le voir, tous les identifiants de processus sont à numéro pair, et pas seulement, ils sont tous des multiples de quatre. Vous pouvez regarder aussi fort que vous voulez et vous ne trouverez jamais un ID de processus impairs, du moins pas sur une version basée sur Windows NT.

Pourquoi n'y a-t-il pas d'identifiant de processus Windows impair?

Le contributeur de SuperUser Answer

DavidPostill a la réponse pour nous:

Pourquoi n'y a-t-il pas de processus Windows impairs? IDs

Le même code qui alloue les handles du noyau est également utilisé pour allouer les ID de processus et de threads. Les identificateurs de processus et de threads étant multiples, les identificateurs de processus et de threads sont multiples.

Pourquoi les identifiants de processus et de threads sont-ils multiples de quatre?

Sur les systèmes d'exploitation Windows NT de quatre. Est-ce juste une coïncidence?

Oui, c'est juste une coïncidence, et vous ne devriez pas compter dessus car cela ne fait pas partie du contrat de programmation. Par exemple, les identifiants de processus et de thread Windows 95 n'étaient pas toujours des multiples de quatre. Par comparaison, la raison pour laquelle les poignées du noyau sont toujours un multiple de quatre fait partie de la spécification et sera garantie dans un avenir prévisible

Les identifiants de processus et de threads sont des multiples de quatre comme effet secondaire de la réutilisation du code. Le même code qui alloue les poignées de noyau est également utilisé pour allouer les ID de processus et de threads. Étant donné que les poignées du noyau sont des multiples de quatre, les identificateurs de processus et de threads le sont également. C'est un détail d'implémentation, donc n'écrivez pas de code qui en dépend. Je vous dis simplement de satisfaire votre curiosité

Source: Pourquoi les identifiants de processus et de thread sont multiples de quatre?

Pourquoi les poignées de noyau sont-elles toujours un multiple de quatre?

Quelque chose ne va pas très bien on sait que les deux derniers bits des poignées du noyau sont toujours nuls; en d'autres termes, leur valeur numérique est toujours un multiple de quatre. Notez que ceci s'applique seulement aux poignées de noyau; il ne s'applique pas aux pseudo-handles ou à tout autre type de handle (poignées USER, poignées GDI, poignées multimédias, etc.). Les poignées du noyau sont des choses que vous pouvez passer à la fonction CloseHandle

Au moins le bit du bas des poignées du noyau est toujours nul est impliqué par la fonction GetQueuedCompletionStatus, qui indique que vous pouvez définir le bit du bas du handle d'événement notification de port. Pour que cela fonctionne, le bit du bas doit normalement être zéro

Cette information n'est pas utile pour la plupart des développeurs d'applications, qui devraient continuer à traiter les poignées comme des valeurs opaques. Les personnes qui seraient intéressées par les bits de balises sont celles qui implémentent des bibliothèques de classes de bas niveau ou qui enveloppent des objets noyau dans une structure plus large.

Source: Pourquoi les noyaux manipulent-ils toujours un multiple de quatre? Lectures complémentaires

L'ancienne nouveauté: le développement pratique tout au long de l'évolution de Windows par Raymond Chen (

Ingénieur principal en conception logicielle chez Microsoft ) Avez-vous quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.



Comment faire fonctionner votre ventilateur CVC manuellement à l'aide du thermostat Nest

Comment faire fonctionner votre ventilateur CVC manuellement à l'aide du thermostat Nest

Si vous ne voulez pas allumer l'A / C de votre maison, mais que vous voulez au moins laisser l'air circuler Un peu pour réduire la congestion, voici comment utiliser le thermostat Nest pour faire fonctionner le ventilateur manuellement depuis votre système HVAC. La plupart des thermostats ont un réglage où vous pouvez uniquement faire fonctionner le ventilateur CVC, mais les personnalisations sont plutôt limitées.

(how-to)

Six façons de tirer le meilleur parti de votre GoPro

Six façons de tirer le meilleur parti de votre GoPro

Que vous soyez en vacances ou que vous passiez juste un après-midi amusant au parc, une GoPro peut transformer n'importe quelle activité en une histoire intéressante. bons outils et savoir-faire. Voici comment tirer le meilleur parti de votre caméra GoPro Achetez un kit d'accessoires bon marché Vous avez peut-être déjà une monture ou deux pour votre GoPro, mais vous ne pouvez jamais avoir trop d'accessoires pour cela.

(how-to)