[Archives des newsletters ^] [< Volume 2, Numéro 1] [Volume 2, Numéro 3 >]
Bulletin d’information System Internals Volume 2, Numéro 2
http://www.sysinternals.com
Copyright © 2000 Mark Russinovich
27 mars 2000 : Dans ce numéro :
ÉDITORIAL
- Mark co-auteur « Inside Windows 2000, 3rd Ed. » avec David Solomon
NOUVEAUTÉS DE SYSINTERNALS
- PsKill v1.03, PsList v1.12
- Junction v1.0
- ElogList v1.0
- NTFrob v1.6a
- GetSid v1.1
- HandleEx v2.23
- Regmon v4.24, Filemon v4.28
- AutoRuns v1.0
- NT 4. ACL Editor
- T-Shirts SysInternals
- Plus d’informations SysInternals sur microsoft.com
- Colonnes internes de mars/avril
- Nouveautés pas si nouvelles
INFORMATIONS INTERNES
- Points d’analyse
- Table de handle du noyau
- Échec du démarrage d’un ou plusieurs pilotes
- Brevets Microsoft NT-Related
NOUVEAUTÉS À VENIR
- TdiMon
SPONSOR : WINTERNALS SOFTWARE
Le bulletin d’informations Systems Internals est parrainé par Winternals Software, sur le web à l’adresse http://www.winternals.com. Winternals Software est le principal développeur et fournisseur d’outils de systèmes avancés pour Windows NT/2K. Les produits Winternals Software incluent FAT32 pour Windows NT 4.0, ERD Commander Professional Edition (fonctionnalité avancée de disque de démarrage pour Windows NT) et récupération à distance.
NTFSDOS Professional et NTFS pour Win98 de Winternals Software vous offrent un accès complet en lecture et en écriture à vos lecteurs NTFS à partir de DOS, Windows 95 et Windows 98. NTFSDOS Pro apporte une fonctionnalité de « disque de démarrage » à une seule disquette à Windows NT/2K. Avec NTFSDOS Pro, vous pouvez supprimer les pilotes bogues, actualiser des fichiers et effectuer une maintenance générale du système de fichiers sur les lecteurs NTFS à partir d’une disquette de démarrage DOS. NTFS pour Win98 vous donne un accès transparent aux lecteurs NTFS de Windows 95 et Windows 98. Partagez facilement des applications et des fichiers entre NT et Win9x sur des lecteurs NTFS dans votre environnement à double démarrage. Les deux utilitaires ont même une fonctionnalité NTFS Chkdsk intégrée. Une version gratuite en lecture seule de NTFSDOS Pro est disponible à l’adresse http://www.sysinternals.com/ntfspro.htm et une version gratuite en lecture seule de NTFS pour Win98 est disponible à l’adresse http://www.sysinternals.com/ntfs98.htm.
Bonjour,
Bienvenue dans le bulletin Systems Internal. Le bulletin compte actuellement 20 000 abonnés. La croissance de la liste a été énorme au cours des deux derniers mois avec plus de 6 000 nouveaux abonnés ! Continuez à transmettre le bulletin à vos amis.
J’ai le plaisir d’annoncer que je co-crée « Inside Windows 2000, 3rd Edition » avec Dave Solomon (http://www.solsem.com). Si vous vous intéressez aux éléments internes de Windows NT, vous avez presque certainement lu « Inside Windows NT, 2nd Edition » de Dave (Microsoft Press). La publication de Windows 2000 apporte un certain nombre de modifications au noyau NT et aux composants environnants, certains grands et certains petits, et ces modifications signifient que le livre de Dave nécessite une révision.
À bien des égards, Dave et moi avons travaillé indépendamment sur « À l’intérieur de Windows 2000 » au cours des trois dernières années, comme nous avons suivi les changements que Microsoft a introduits à Windows 2000 dans son évolution de NT 5.0 Beta 1 à Windows 2000 build 2195. J’avais en fait travaillé sur l’écriture de mon propre livre « Windows NT Internals » depuis un certain temps, mais quand l’opportunité est venue de collaborer avec Dave sur le successeur d’un livre de si haute qualité, et d’aider à écrire la vue officielle de Microsoft sur Windows 2000 Internals, je n’ai pas pu dire non.
Notre décision d’écrire ensemble le livre est assez récente, donc nous avons passé les deux derniers mois à fusionner nos recherches, nos notes et nos articles. Pour des raisons totalement étrangères l'une à l'autre, il se trouve que nous vivons à vingt minutes l'une de l'autre dans un coin reculé du Connecticut. Notre proximité nous a permis d’alterner des jours de travail chez l’autre, et nous avons récemment passé de nombreuses nuits tardives à rechercher et à débattre des détails obscurs du fonctionnement interne de Windows 2000. Vous pouvez voir une photo de Dave et moi travaillant chez lui à http://www.sysinternals.com/inspic.jpg.
Un aspect inhabituel de notre partenariat est que Dave a un accès complet au code source de Windows 2000 alors que je ne l'ai pas (je n'ai jamais eu accès au code source de Windows en dehors de celui qui est publiquement disponible dans le kit de pilote de périphérique et le kit de système de fichiers installable). Dave se débrouille en parcourant les fichiers de code source, tandis que j'analyse les listes produites par mon désassembleur personnalisé et que j'explore les entrailles de Windows 2000 sur des systèmes réels avec le débogueur en mode noyau SoftICE de NuMega. Par conséquent, nous apportons chacun des points de vue uniques et nous avons, à plusieurs reprises, appliqué conjointement nos ressources respectives pour répondre ensemble à des questions difficiles.
Non seulement nous mettons à jour le livre d’origine pour refléter les modifications apportées à Windows 2000, mais nous ajoutons également plus de 30 % de contenu flambant neuf, y compris plusieurs nouveaux chapitres. Les rubriques que nous introduisons dans le nouveau livre incluent le démarrage, l’arrêt, les plantages, la gestion du stockage, les internes de service, les internes du Registre et WMI. Cette révision est même fournie avec un CD-ROM contenant une capture instantanée du site Web SysInternals, et une demi-douzaine d’outils que j’ai écrits spécifiquement pour le livre. L’un des outils, LiveKd, vous permet d’exécuter le débogueur de noyau i386kd sur un système actif, ce qui facilite l’exploration des composants internes du noyau sans avoir à se soucier des câbles série et de plusieurs ordinateurs. Sans aucun doute, ce livre ajoute des informations techniques et des insights significatifs à la base déjà solide de son prédécesseur.
Quand le livre sera-t-il disponible ? Dave et moi allons à Redmond la semaine du 4 avril pour obtenir les commentaires de révision technique finale des développeurs du noyau Windows 2000, et Microsoft Press dit que le livre sera en vente en juillet. Je vais bien sûr vous tenir au courant dans le bulletin.
Merci !
- Mark
NOUVEAUTÉS DE SYSTEMS INTERNALS
PSKILL V1.03, PSLIST V1.12
PsList est un utilitaire qui vous permet d’afficher des informations détaillées sur les processus actifs d’un système local ou distant, et PsKill vous permet de tuer des processus sur un système local ou distant. Ces utilitaires ont une syntaxe de ligne de commande similaire, où vous pouvez spécifier un nom d’ordinateur facultatif au format «\\computer
». Si vous incluez un nom d’utilisateur avec un nom d’ordinateur, les outils vous permettent de vous connecter à l’ordinateur spécifié dans un compte d’utilisateur différent de celui à partir duquel vous exécutez les outils. Ces dernières versions offrent un autre moyen d’entrer le mot de passe dans les environnements où vous les exécutez devant d’autres personnes et ne souhaitez pas exposer les mots de passe. À présent, si vous incluez un compte d’ordinateur en tant qu’option, mais que vous omettez le mot de passe, ils vous invitent à entrer le mot de passe et à ne pas renvoyer votre entrée à l’écran.
Téléchargez PsKill v1.03 à l’adresse http://www.sysinternals.com/pskill.htm.
Téléchargez PsList v1.12 à l’adresse http://www.sysinternals.com/pslist.htm.
JUNCTION V1.0
Une forme de lien symbolique est enfin arrivée à Windows sous la forme de jonctions NTFS Windows 2000. Les jonctions sont des liens symboliques de répertoire, et le Kit de ressources Windows 2000 inclut un outil, lié, qui vous permet de créer et de supprimer des jonctions. Malheureusement, une installation Windows 2000 de base n’inclut pas d’outils permettant de créer des jonctions, et la documentation du Kit de développement logiciel (SDK) de plateforme ne documente pas correctement les points d’analyse. Ces lacunes m’amènent à implémenter Junction, un outil qui vous permet non seulement de créer des jonctions, mais également d’interroger des fichiers et d’afficher des informations sur leur point d’analyse s’ils en ont un. Afin d’aider les développeurs qui souhaitent implémenter leurs propres outils de point d’analyse, j’ai publié le code source complet dans Junction. Pour plus d’informations sur les jonctions et la façon dont Windows 2000 les implémente, consultez la section sur les points d’analyse plus loin dans le bulletin d’informations.
Téléchargez Junction v1.0 avec le code source complet à l’adresse http://www.sysinternals.com/misc.htm.
ELOGLIST V1.0
Le Kit de ressources Windows 2000 inclut un outil nommé ELogDump qui vous permet de vider des enregistrements à partir d’un journal d’événements sur l’ordinateur local ou distant. ELogList est un clone ElogDump qui vous permet également de spécifier un nom de compte et un mot de passe facultatifs afin que vous puissiez accéder aux journaux d’événements d’un ordinateur à partir d’un compte différent de celui à partir duquel vous exécutez l’outil. ElogList est utile pour supprimer les journaux d’événements à partir de fichiers batch ou pour capturer des enregistrements de journal des événements dans des fichiers texte que vous pouvez importer dans des feuilles de calcul pour la conservation ou l’analyse des enregistrements.
Télécharger ElogList v1.0 à l’adresse http://www.sysinternals.com/eloglist.htm.
NTFROB V1.6A
NTFrob est une applet qui vous donne plus de contrôle sur les quantums de premier plan et d’arrière-plan (tours) que le planificateur Windows NT attribue aux threads que ce que vous permet l’onglet Performances de l’applet du panneau de configuration système. L’utilisation de quantums plus courts peut améliorer la réactivité des applications interactives, tandis que les quantums plus longs sont plus adaptés aux charges de travail de serveur de longue durée. NTFrob continue de suivre le rythme des nouveaux Service Packs avec sa dernière version, la version 1.6a. La version 1.6a fonctionne sur toutes les versions publiées de NT 4.0 jusqu’au Service Pack 6a, à l’exception du Service Pack 6 (Microsoft a retiré le Service Pack 6 peu après sa publication en raison d’un bogue important). Une version de NTFrob qui fonctionne sur Win2K sera bientôt disponible.
Télécharger NTFrob v1.6a à l’adresse http://www.sysinternals.com/ntfrob.htm.
GETSID V1.1
Si vous administrez un environnement où le clonage facilite les charges de déploiement, vous serez probablement intéressé par GetSid. GetSid est semblable à l’outil Kit de ressources Windows NT du même nom, mais SysInternals GetSid vous permet d’obtenir des SID non seulement pour les comptes d’utilisateur, mais aussi pour les ordinateurs. Étant donné que GetSid fonctionne sur les réseaux sans vous obliger à installer de logiciels clients, vous pouvez facilement utiliser GetSid pour vérifier que les ordinateurs de votre réseau ne souffrent pas du problème de SID en double qui accompagne le clonage.
Téléchargez GetSid v1.1 à l’adresse http://www.sysinternals.com/misc.htm.
En savoir plus sur le problème de SID en double à l’adresse http://www.sysinternals.com/newsid.htm.
REGMON V4.24, FILEMON V4.28
En plus d’afficher les noms des processus effectuant une activité de fichier ou de Registre, ces mises à jour apportées à Regmon et Filemon vous montrent également les identificateurs de processus. Cette amélioration vous permet de distinguer les accès aux fichiers et au Registre entre plusieurs processus portant le même nom.
Une autre amélioration présente dans ces versions vous permet d’exécuter Regmon et Filemon à partir de sessions de services terminal Win2K distantes (par opposition à la console). Les applications obtiennent cette prise en charge, car leurs interfaces utilisateur vérifient le numéro de version du système d’exploitation et, si elles s’exécutent sur Win2K, spécifiez le préfixe «\\.\Global\
» du nom qu’elles utilisent dans leur appel à CreateFile lorsqu’elles ouvrent l’objet de périphérique de leur composant pilote. Dans un environnement de services de terminal, les noms que les pilotes de périphériques attribuent à leurs objets sont stockés dans l’espace de noms global (console), un espace de noms qui, par défaut, n’est pas visible dans les sessions distantes. Les sessions à distance ont chacune un espace de noms local. Le préfixe « Global » indique au gestionnaire d’objets Win2K que le gestionnaire d’objets doit effectuer des recherches de noms dans l’espace de noms global, plutôt que dans l’espace de noms de la session d’origine de la recherche.
Télécharger Regmon v4.24 à l’adresse http://www.sysinternals.com/regmon.htm.
Téléchargez Filemon v4.28 à l’adresse http://www.sysinternals.com/filemon.htm.
AUTORUNS V1.0
Si vous avez une configuration classique, chaque fois que vous démarrez votre système et que vous vous connectez à différents composants tels que Explorer recherchez dans des dossiers et des clés de Registre obscurs et exécutez automatiquement les programmes référencés dans ces derniers. David Solomon présente une liste de tous les emplacements où les fichiers d’exécution automatique sont spécifiés dans son séminaire « Windows 2000 Internals » (http://www.solsem.com)et Bryce Cogswell a pris la liste et écrit AutoRuns, un programme qui vous permet d’afficher leur contenu. Vous serez presque certainement surpris par les programmes cachés qui s’exécutent à votre insu.
Télécharger AutoRuns v1.0 à l’adresse http://www.sysinternals.com/misc.htm.
HANDLEEX V2.23
La dernière version de HandleEx ajoute un certain nombre d’améliorations de la convivialité de l’interface utilisateur, comme la possibilité de ctrl-tab entre ses vues supérieure et inférieure. Plus important encore, toutefois, HandleEx s’intègre désormais à l’interface de boîte de dialogue de l’éditeur de sécurité Win2K, affiche les fichiers mappés en mémoire qu’un processus a ouverts et affiche le masque d’accès accordé pour les handles ouverts.
Lorsque vous basculez HandleEx vers son affichage basé sur le handle, il présente les fichiers qu’un processus a ouverts via les handles. Dans la vue DLL HandleEx affiche les fichiers qu’un processus a chargés en tant que modules, et avec l’ajout de la prise en charge des fichiers mappés en mémoire, HandleEx répertorie les fichiers qu’un processus a mappés via les API de fichiers mappés en mémoire Win32. Étant donné que WinNT et Win2K ne vous permettent pas de supprimer des fichiers qui ont été mappés, la prise en charge des fichiers mappés en mémoire de HandleEx vous aide à déterminer quel processus vous empêche de supprimer un fichier en raison d’un mappage exceptionnel.
Téléchargez HandleEx v2.23 à l’adresse http://www.sysinternals.com/handleex.htm.
NT 4 ACL EDITOR
En parlant d’éditeurs de sécurité, Microsoft documente les nouvelles API de boîte de dialogue éditeur de sécurité Win2K dans les dernières versions du Kit de développement logiciel (SDK) de plateforme. Toutefois, les API des éditeurs NT 4 ont toujours été non documentées et elles le restent. Les éditeurs NT 4 sont ceux que vous utilisez lorsque vous modifiez les autorisations de clé de Registre dans Regedt32 et les autorisations de fichier NTFS dans Explorer.
J’ai déterminé les interfaces de l’éditeur de sécurité NT 4 lorsque j’ai ajouté la fonctionnalité d’édition de sécurité des objets à notre outil WinObj, et utilisé les mêmes interfaces pour ajouter la modification de sécurité à HandleEx. J’ai finalement décidé de publier ma documentation afin que vous puissiez ajouter des fonctionnalités d’éditeur de sécurité natives aux versions NT 4 de vos propres applications.
Consultez la documentation de l’éditeur de liste de contrôle d’accès NT 4 à l’adresse http://www.sysinternals.com/acledit.htm.
Téléchargez WinObj à l’adresse http://www.sysinternals.com/winobj.htm.
T-SHIRTS SYSINTERNALS
Si vous aimez les informations techniques et les utilitaires que vous obtenez chez SysInternals, montrez-le au monde entier en portant un t-shirt SysInternals. Les t-shirts sont 100% coton Hanes Beef-T, sont imprimés dans des couleurs éclatantes à la fois sur l’avant et l’arrière, et ne coûtent que 14,95 USD. De plus, 5 USD de chaque vente va à l’American Cancer Society.
Consultez et commandez des t-shirts SysInternals à l’adresse http://www.sysinternals.com/tshirt.htm.
PLUS SUR SYSINTERNALS SUR WWW.MICROSOFT.COM
Je suis fier de dire que le nombre d’articles de la Base de connaissances Microsoft qui référencent les utilisateurs aux outils SysInternals continue de croître. Voici la liste des ajouts récents que j’ai suivis.
Q243583 PRB : Mib.bin provoque l’échec du programme d’installation de Visual Studio http://support.microsoft.com/support/kb/articles/Q243/5/83.ASP
Cet article recommande l’utilisation de Filemon pour suivre les erreurs d’installation de Visual Studio.Q242131 HOWTO : Afficher une liste des processus pour 2000 dont les fichiers sont ouverts http://support.microsoft.com/support/kb/articles/Q242/1/31.ASP
Microsoft pointe les utilisateurs vers HandleEx en tant qu’utilitaire qui indique les fichiers que les processus ont ouverts.PrQ232060 HOWTO : Guide de résolution des problèmes liés à l’installation de MDAC http://support.microsoft.com/support/kb/articles/q232/0/60.asp
DLLView et HandleEx sont à l’honneur dans cet article, qui indique aux utilisateurs d’utiliser les outils pour localiser les processus ayant des DLL de composant Microsoft Data Access afin que l’utilisateur puisse les arrêter avant de réinstaller MDAC.Q245068 ERRMSG : Accès refusé. Vous n’avez pas d’autorisations ou le fichier est dans Utiliser http://support.microsoft.com/support/kb/articles/q245/0/68.asp?lng=eng&sa=allkb
NtHandle obtient à nouveau la référence dans cet article, qui vous indique comment déterminer quel processus a un fichier en cours d’utilisation lorsque vous obtenez une erreur de suppression.Exemple Q247957 : Utilisation de DUPS.EXE pour résoudre les problèmes de compatibilité dll http://support.microsoft.com/support/kb/articles/q247/9/57.asp
Cet article fait référence à ListDLLs, DllView et HandleEx en tant qu’outils qui vous permettent de suivre les problèmes de version de DLL.
Non seulement SysInternals a été mentionné dans tous ces nouveaux articles de la KB, mais Rick Anderson, l'auteur de l'utilitaire DUPS présenté dans le dernier article de la KB, fait référence à ListDLLs dans son article de MSDN News intitulé « The End of DLL Hell » (La fin de l'enfer des DLL). Vous pouvez consulter l’article en ligne sur Microsoft ici : http://www.msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/techart/DLLdanger1.htm. L’attention des ListDLLs reçus à la suite de cette invite m’a invité à le porter vers Windows 9x. La version 2.21 fonctionne donc sur Windows 9x, Windows NT et Windows 2000.
Téléchargez ListDLLs v2.21 à l’adresse http://www.sysinternals.com/listdlls.htm.
COLONNES DE MARS/AVRIL INTERNALS
Consultez les numéros de mars et d’avril du Magazine Windows 2000 pour ma colonne « Internes » en deux parties sur la gestion du stockage Windows NT et Windows 2000. Dans la première partie de la série, je décrit le partitionnement de disque NT 4, la configuration avancée du volume, l’attribution de lettre de lecteur et l’architecture de stockage des pilotes de périphérique.
Dans la partie 2, j’aborde les modifications de stockage présentes dans Win2K, notamment les nouveaux pilotes de périphériques de gestion du stockage, le partitionnement des disques dynamiques, la prise en charge des volumes avancés qui ne nécessitent pas de redémarrage pour la reconfiguration et les mécanismes d’attribution de lettre de lecteur de Win2K.
INFORMATIONS INTERNES
POINTS D’ANALYSE
Pour une raison quelconque, les gens sont toujours excités par les astuces du système de fichiers, et Windows 2000 en inclut plusieurs nouveaux. Avant Windows 2000, tous les systèmes de fichiers Microsoft ne disposait pas d’une fonctionnalité familière aux utilisateurs UNIX : le lien symbolique. Les liens symboliques vous permettent de créer un fichier ou un répertoire qui référence un autre fichier ou répertoire ailleurs dans l’espace de noms du système de fichiers. Lorsqu’une application accède à un lien, elle accède en fait à la cible du lien. Par exemple, si le lien C:\drivers
fait référence au répertoire C:\winnt\system32\drivers
, une référence au C:\drivers\ntfs.sys
nom de fichier est résolue en C:\winnt\system32\drivers\ntfs.sys
.
NTFS version 5, la révision NTFS incluse avec Windows 2000, prend en charge un mécanisme appelé points d’analyse. Un point d’analyse est un bloc de données associé à un fichier ou un répertoire qui contient une « balise » et des informations définies par le pilote responsable de la gestion des points d’analyse ayant cette balise. Microsoft définit plusieurs balises intégrées, notamment les balises de jonction et de point de montage. Lorsque NTFS rencontre un point d’analyse lors de la recherche d’un nom de fichier, il abandonne la recherche et retourne un STATUS_REPARSE
code à son appelant. Les pilotes de filtre de système de fichiers et le Gestionnaire d’E/S observe pour analyser les codes en fonction de leur balise et réagir de plusieurs façons. Les points d’analyse de la gestion du stockage hiérarchique (HSM) désignent les fichiers que le sous-système HSM a déplacés vers le stockage distant (par exemple, sur bande), le pilote de filtre de stockage à distance (RsFilter.sys), par exemple, extrait en toute transparence les données du fichier du stockage distant, supprime le point d’analyse et permet à la recherche de fichier de réessayer.
Un pilote de filtre peut également modifier le nom du fichier en cours d’ouverture. Les étiquettes de point de montage représentent des points de montage de volume et vous permettent de connecter des volumes à partir de leurs espaces de nom. Ainsi, vous pouvez monter un volume contenant vos documents de projet dans le répertoire \projects
de votre lecteur C:
. Cela permet d’organiser vos données de système de fichiers et d’éviter d’utiliser des lettres de lecteur de style DOS.
Les jonctions ressemblent à des points de montage, mais au lieu de lier un répertoire à un volume, elles lient les répertoires à d’autres répertoires. Il s’agit de la prise en charge des liens symboliques NTFS. À ce stade, vous vous demandez probablement pourquoi Microsoft n’a pas inclus de liens symboliques basés sur des fichiers. La réponse est que les liens symboliques feraient des ravages avec les applications Win32 existantes.
Bien qu’il existe de nombreux comportements d’application typiques qui entraîneraient des résultats inattendus lors de l’utilisation de fichiers qui sont vraiment des liens symboliques, la suppression d’un lien symbolique avec un programme sans lien est un exemple simple. Prenons l’exemple d’un fichier stocké dans un emplacement central auquel font référence plusieurs liens symboliques. Un utilisateur qui supprime l’un des liens a probablement l’intention de supprimer simplement le lien et non le fichier lui-même. Toutefois, si le programme ne connaît pas les liens symboliques, il ne détecte pas que le fichier est réellement un lien et vous invite à indiquer le comportement souhaité. Les problèmes deviennent plus graves lorsqu’une application crée des fichiers liés à celui qu’elle référence par le biais d’un lien si les fichiers associés doivent être stockés dans le répertoire où se trouve la cible de lien ou dans le répertoire où se trouve le lien symbolique ?
Microsoft a été confronté à un problème difficile, et je suis sûr qu’il existe des applications qui effectuent des manipulations de fichiers encore plus complexes qui se briseraient même si vous pouviez trouver une solution de contournement pour les problèmes que j’ai mentionnés. Pour cette raison, je pense qu’il est peu probable que nous voyions des liens symboliques basés sur des fichiers dans Windows.
TABLE DE HANDLE DU NOYAU
Le gestionnaire d’objets Win2K a introduit un nouveau type de table de handle qui améliore les performances de certains types de pilotes de périphérique. Certains pilotes doivent ouvrir des handles aux objets système pendant qu’ils s’exécutent dans le contexte de sécurité d’un processus utilisateur. Les pilotes de périphérique peuvent ignorer les vérifications de sécurité lors de l’ouverture d’objets. Ils doivent donc prendre des mesures pour éviter une brèche de sécurité qui se produit lorsqu’ils créent un handle pour un objet sensible dans la table de handle d’un processus non privilégié. Les pilotes NT 4 qui évitent les problèmes de sécurité doivent soit mettre en file d’attente des éléments de travail vers des threads de travail qui s’exécutent dans le contexte du processus système, soit utiliser l’API KeAttachProcess
pour basculer vers la table de handles et l’espace d’adressage du processus système. Ces deux solutions peuvent dégrader les performances, en particulier si le pilote doit les effectuer fréquemment.
La solution de Win2K à ce problème se présente sous la forme d’un nouvel indicateur qu’un pilote peut passer dans une structure OBJECT_ATTRIBUTES
lorsqu’il ouvre un objet et obtient un handle. L’indicateur n’est pas documenté dans le DDK, mais il est défini dans le NTDEF. Fichier d’en-tête H en tant que OBJ_KERNEL_HANDLE
. Lorsque le gestionnaire d’objets a ouvert l’objet spécifié et crée un handle pour revenir à l’appelant, il vérifie si cet indicateur est présent. Si c’est le cas, il crée le handle dans une table de handles nommée ' ObpKernelHandleTable au lieu de la table de handles du processus en cours d’exécution. Les handles retournés par le gestionnaire d’objets aux appelants qui demandent des handles de noyau ont leur nombre de bits élevé défini, de sorte que tous les handles de noyau ont des valeurs supérieures à 0x80000000.
Chaque fois que le gestionnaire d’objets est passé un handle, dans un appel à ObReferenceObjectByHandle
, par exemple, où il doit traduire un handle en pointeur vers l’objet sous-jacent du handle, il vérifie si la référence de handle est une référence en mode noyau et si le bit élevé du handle est défini. Pour les références qui correspondent à ces critères, le gestionnaire d’objets recherche le handle dans la table de handle du noyau au lieu de la table handle du processus en cours d’exécution. Ainsi, un pilote faisant référence à des handles de noyau pour des objets sécurisés évite de prendre des performances et de provoquer des trous de sécurité.
UN OU PLUSIEURS PILOTES NE PARVIENNENT PAS À DÉMARRER
Voici une partie de la trivia Windows NT/2K intéressante pour vous. Lorsque vous voyez une boîte de dialogue pendant le démarrage qui vous indique que « Un ou plusieurs pilotes n’ont pas pu démarrer », c’est le Gestionnaire de contrôle de service (SCM) qui effectue à la fois la détermination et présente la boîte de dialogue.
Comment le SCM sait-il qu’un pilote n’a pas pu démarrer ? Le SCM analyse la clé de Registre HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
lorsqu’elle s’initialise, à la recherche des pilotes de périphérique dont les valeurs De démarrage spécifient qu’ils démarrent en tant que pilotes de démarrage ou de démarrage du système. Lorsqu’il trouve une entrée, il ouvre l’espace de noms du gestionnaire d’objets et recherche si le nom du pilote de périphérique est présent dans le répertoire \Drivers. Lorsqu’un pilote de périphérique démarre correctement, le Gestionnaire d’E/S place son objet de pilote dans le répertoire \Drivers
. Par conséquent, lorsque le SCM ne trouve pas le nom, il suppose que le pilote n’a pas démarré correctement. Vous pouvez visualiser le contenu du répertoire \Drivers
à l'aide de WinObj.
Téléchargez WinObj à l’adresse http://www.sysinternals.com/winobj.htm.
BREVETS MICROSOFT NT
Les brevets logiciels ont attiré beaucoup d’attention ces derniers temps. Il semble que l’Us Patent and Trademark Office accorde des brevets même aux « innovations » les plus évidentes, et les entreprises tirent parti de la politique libérale en matière de brevets pour verrouiller des technologies clés pour leur usage exclusif. Microsoft n’est pas étranger au jeu des brevets, mais ce que beaucoup de gens ne savent pas, c’est que Microsoft possède des brevets pour plusieurs idées clés qu’ils ont développées avec Windows NT. Voici la liste des brevets liés au noyau que j’ai découverts sur le site web d’IBM Patent Server :
« Système permettant d’effectuer des opérations de fichier asynchrones demandées par les threads exécutables en traitant les messages d’achèvement avec un thread de file d’attente différent et en vérifiant l’achèvement par des threads exécutables »
http://www.patents.ibm.com/details?pn=US05758184__Ce brevet couvre les idées fondamentales derrière le mécanisme de synchronisation NT avancé appelé ports d’achèvement. Les ports d’achèvement permettent aux processus d’attendre efficacement les E/S sur de nombreux objets différents et utilisent la prise en charge dans le planificateur Windows NT/2000 pour permettre aux threads associés à un port d’achèvement d’utiliser efficacement un multiprocesseur.
Pour en savoir plus sur les ports d’achèvement, consultez http://www.sysinternals.com/comport.htm.
« Emprunt d’identité de serveur des processus clients dans un système d’exploitation d’ordinateur basé sur des objets »
http://www.patents.ibm.com/details?&pn10=US05187790L’emprunt d’identité est une fonctionnalité puissante du modèle de sécurité Windows NT/2000 qui permet à un thread serveur d’adopter temporairement le contexte de sécurité d’un thread client lorsque le serveur effectue des activités pour le compte du client. Cela permet au serveur de tirer facilement parti du modèle de sécurité Windows NT/2000 lorsqu’il accède à des objets protégés pour un client. Il s’agit d’une approche intelligente, voire quelque peu évidente, de la sécurité distribuée et Microsoft détient le brevet sur celle-ci.
« Système et méthode de création d'un objet pouvant être attendu dans un système d'exploitation informatique basé sur les objets »
http://www.patents.ibm.com/details?&pn10=US05057996« Système de création d’objet conditionnel ayant différents pointeurs d’objet pour accéder à un ensemble d’objets de structure de données »
http://www.patents.ibm.com/details?&pn10=US05129083« Système et méthode de transfert de conteneur d’objets dans un système d’exploitation d’ordinateur basé sur des objets »
http://www.patents.ibm.com/details?&pn10=US05129084« Système et méthode de gestion d’objets temporaires dans un système d’exploitation d’ordinateur basé sur des objets »
http://www.patents.ibm.com/details?&pn10=US05136712« Système et méthode de transfert d’objet dans un système d’exploitation d’ordinateur basé sur des objets »
http://www.patents.ibm.com/details?&pn10=US05297283Le gestionnaire d’objets Windows NT/2000 implémente un espace de noms différent de l’espace de noms VFS (Virtual File System) présent sur les implémentations UNIX. Certains des brevets que Microsoft a obtenus sur le gestionnaire d’objets ressemblent vraiment à des brevets sur la conception orientée objet, et plusieurs semblent se chevaucher. Cependant, je ne suis pas un avocat en brevets, donc c’est peut-être mon point de vue non informé.
Si vous examinez les brevets, vous trouverez les noms de plusieurs des principaux développeurs du noyau Windows NT, y compris David Cutler. Il est intéressant de noter que certains des brevets ont été obtenus pour Digital Equipment Corp de Maynard, MA par les développeurs de NT lorsqu’ils ont travaillé sur VMS, mais le processus de brevet a pris tellement de temps que les brevets les répertorient comme résidant à Redmond, WA.
NOUVEAUTÉS À VENIR
TDIMON
Avez-vous déjà voulu observer l'activité du réseau TCP et UDP en temps réel, et savoir exactement quels sont les processus qui effectuent l'activité ? Restez à l’écoute pour TdiMon, un ajout puissant au kit de ressources de supervision SysInternals.
Merci d’avoir lu le bulletin d’information Systems Internals.
Publié le lundi 27 mars 2000 à 19:09 par ottoh
[Archives des newsletters ^] [< Volume 2, Numéro 1] [Volume 2, Numéro 3 >]