Partager via


[Archives des newsletters ^] [< Volume 2, Numéro 5] [Volume 3, Numéro 2 >]

Bulletin d’information The Systems Internals Volume 3, numéro 1

http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich


18 avril 2001 – Dans ce numéro :

  1. ÉDITORIAL

  2. NOUVEAUTÉS DE SYSINTERNALS

    • PsService v1.01
    • PsFile v1.0
    • PsExec v1.11
    • HandleEx v4.0
    • DebugView v4.11
    • Dans Windows 2000, 3e édition.
    • Magazine Windows 2000 de février
    • Sysinternals chez Microsoft
  3. INFORMATIONS INTERNES

    • Raccourcis clavier froids
    • Messages de débogage PnP
    • Décision d’ingénierie à rebours
    • Nouveaux appels système Windows XP
    • Réseau déconnecté
    • WinDev
    • TechEd US
  4. NOUVEAUTÉS À VENIR

    • Prérécupération dans Windows XP

SPONSOR : WINTERNALS SOFTWARE ~~~~

Le bulletin Sysinternals 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, NTFSDOS Professional Edition (un pilote NTFS en lecture/écriture pour DOS) et la récupération à distance.

Winternals est fier d’annoncer Defrag Commander NE version 1.2, une solution de défragmentation d’entreprise facile à utiliser à faible coût qui ajoute la prise en charge de NT 4 à sa prise en charge existante de Windows 95/98/Me et Windows 2000. Defrag Commander NE tire parti des défragmenteurs intégrés de Windows 2000 et Windows 95/98/Me, et ajoute son propre défragmenteur puissant pour Windows NT 4. Vous pouvez désormais gérer les planifications de défragmentation dans l’ensemble de votre entreprise Windows à partir d’un simple composant logiciel enfichable MMC, sans même avoir à installer des logiciels clients sur vos systèmes NT ou Windows 2000. Une licence à 10 systèmes est disponible pour l’achat en ligne pour seulement 169 USD, et des remises de quantité agressive sont disponibles. Pour plus d’informations, consultez http://www.winternals.com.

Bonjour,

Bienvenue dans le bulletin Sysinternals. Le bulletin compte actuellement 31 500 abonnés.

L’une des premières choses que vous remarquez lorsque vous installez une version bêta de Windows XP est l’interface utilisateur repensée, nommée Luna. L’apparence de Luna est omniprésente dans tous les aspects de l’interface, du comportement du menu de démarrage à la conception des menus d’application et des boîtes de dialogue. Cette conversion totale est obtenue à l’aide d’un moteur « thèmes ». Les thèmes sont décrits dans les fichiers de style de thème (fichiers qui se terminent par .msstyles) et le fichier de thème Luna, luna.msstyle, se trouve dans \Windows\Resources\Themes\Luna. Dans le même répertoire, vous trouverez un sous-répertoire nommé Shell, dans lequel se trouve shellstyle.dll. La façon dont XP utilise la DLL n’est pas claire : elle est chargée par Explorer et contient une feuille de style HTML, mais aucune exportation. Étant donné que comdlg.dll et kernel32.dll les importer, et que chaque application obtient une copie de ces DLL, chaque processus obtient également une copie chargée de \Windows\System32\UxTheme.DLL, la bibliothèque cliente de thèmes. Cette DLL exporte des fonctions telles que IsThemeActive, IsAppThemed, GetCurrentThemeName, DrawThemeBackgroundet GetThemeColor.

Le Registre est l’endroit où le thème actuel est spécifié et où l’omniprésence du thème est configurée. Regardez sous HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes et vous trouvez une clé nommée Apply où vous voyez des valeurs telles que « couleurs » et « icônes » qui spécifient l’emplacement où le thème doit être actif. Sous la même clé, la sous-clé Current a le chemin du fichier .msstyles pour le thème actuel.

Étant donné que le « skinning » est devenu la fureur pour les applications comme WinAmp et Lecteur multimédia Windows, vous pouvez supposer que Microsoft publierait un outil permettant à des tiers de développer leurs propres thèmes, ou au moins de documenter le format du fichier .msstyles et de la DLL shellstyle afin que des tiers puissent développer des éditeurs de thèmes. Vous auriez tort, cependant. Dans « Microsoft Windows XP : Qu’est-ce qu’il apporte aux développeurs ? » (mis en ligne à l’adresse http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm), Microsoft indique clairement qu’ils n’ont pas l’intention d’autoriser les thèmes tiers :

« À première vue, le potentiel de plusieurs styles Windows XP peut ressembler à la fonctionnalité d’apparence dans des applications telles que le Lecteur multimédia Windows, mais il existe des différences. Les thèmes changent le style visuel du système d’exploitation, mais fournissent toujours une interface utilisateur cohérente avec les versions antérieures de Windows. Cela est important, car les thèmes sont appliqués à l’échelle du système. Les modifications applicables à une apparence d’application, telles que la suppression des boutons, ne sont pas appropriées au niveau du système d’exploitation. Les formats de fichier de thème ne sont pas publics ; Microsoft conserve le contrôle de conception pour les thèmes, afin d’autoriser une interface utilisateur cohérente et d’assurer la continuité de la conception. Un kit de développement de thème ne sera pas disponible avec Windows XP. »

L'argument qu'ils avancent certainement pour justifier cette position est que les thèmes tiers risquent de casser l'interface utilisateur, et que les utilisateurs appelleront le service d'assistance de Microsoft pour obtenir de l'aide. Pourquoi ils n’ont pas la même peur avec Lecteur multimédia Windows, je ne sais pas. Néanmoins, il existe des façons d’appliquer une apparence de type thème au bureau et aux applications. Visitez http://www.wincustomize.com/pour trouver des apparences de bureau Windows, comme le nouveau Aqua-Soft (une apparence WindowsBlinds - http://www.windowblinds.net) qui donne à Windows l’apparence et la convivialité du bureau OS X d’Apple. Et compte tenu de la persistance de la communauté de l'habillage à trouver comment habiller tout ce qui est publié, je suis sûr qu'il y a actuellement des gens qui font de la rétro-ingénierie sur le format de thème de Microsoft. Ce n’est qu’une question de temps avant qu’une personne publie un éditeur de thème, quelle que soit la stratégie de Microsoft en matière de contrôle des thèmes.

Alors, que fera Microsoft lorsque les éditeurs de thèmes Windows XP et les thèmes tiers commencent à apparaître ? Nous devrons attendre et voir, mais le comportement d’Apple pourrait nous donner une préversion. Il y a quelques jours, Apple a adressé à une société développant un éditeur de thèmes pour Mac OS une injonction de cesser et de s'abstenir : http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. Attention aux développeurs de thèmes.

Veuillez transmettre le bulletin d’informations à des amis que vous pensez être intéressés par son contenu.

Merci !

Mark

NOUVEAUTÉS DE SYSINTERNALS

PSSERVICE V1.01

Les kit de ressources NT 4 et Win2K ont eu un utilitaire de contrôle de service de ligne de commande, SC, aussi longtemps que je me souviens. SC vous permet d’afficher et de modifier l’état et la configuration des services Win32 sur les systèmes locaux ou distants. PsService est un clone gratuit de SC qui offre quelques fonctionnalités supplémentaires.

La première est que PsService vous permet de vous connecter à des systèmes distants à l’aide d’autres informations d’identification utilisateur. Cette fonction est utile lorsque le compte à partir duquel vous exécutez le programme ne dispose pas de privilèges d'administration sur le système distant, mais que vous avez accès à un compte qui en a. La deuxième est la fonctionnalité de recherche de PsService. Si vous avez déjà oublié quel système de votre réseau exécute le DNS, DHCP ou un autre service, vous trouverez la fonctionnalité de recherche utile, car elle vous permet de spécifier un nom de service et signale les ordinateurs exécutant le service.

PsService s’appuie sur l’API Gestionnaire de contrôle des services, pour laquelle vous pouvez trouver une documentation complète dans le Kit de développement logiciel (SDK) de plateforme, et PsService ne nécessite aucune installation de logiciel client.

Téléchargez PsService v1.01 à l’adresse http://www.sysinternals.com/ntw2k/freeware/psservice.shtml.

PSFILE V1.0

PsFile est un outil que j’ai créé en réponse à des demandes pour quelque chose qui surmonte les limitations de la commande « fichier net » dans Windows NT/2K. Vous pouvez utiliser la commande intégrée « net » sur NT et Win2K avec l’option « file » pour répertorier les fichiers que d’autres ordinateurs ont ouverts sur des partages exportés par le système. Toutefois, la commande net tronque les noms de chemins longs et fonctionne uniquement sur le système local.

PsFile utilise les mêmes API (de manière appropriée, l’API « Net », qui est documentée dans le Kit de développement logiciel (SDK) de plateforme) que la commande net, mais elle ne tronque pas les noms de fichiers et fonctionne localement et à distance, sans qu’il soit nécessaire d’installer des logiciels clients.

Téléchargez PsFile v1.0 à l’adresse http://www.sysinternals.com/pstools.htm.

PSEXEC V1.11

PsExec est une application en ligne de commande pour Windows NT/2K qui vous permet d’exécuter des programmes sur des systèmes distants. Ce qui le rend particulièrement puissant, c’est qu’il active à distance les programmes de console afin que vous puissiez les exécuter de manière interactive. Par exemple, si vous lancez l’exécutable de l’invite de commandes (cmd.exe) sur un système distant à l’aide de PsExec, vous disposez d’un interpréteur de commandes distant et vous n’avez pas besoin d’installer de logiciel client.

En plus de servir de telnet léger, PsExec vous permet d’activer à distance les applications « locales uniquement ». IpConfig, l’outil intégré qui vous montre la configuration réseau d’un système, n’est pas en mesure de vous montrer la configuration des systèmes distants. Avec PsExec, toutefois, vous pouvez le lancer à distance et afficher sa sortie localement.

Dans certains cas, le compte dans lequel une application s’exécute est important. L’application peut avoir besoin de s’exécuter dans votre compte afin que les modifications qu’elle apporte au Registre ou aux fichiers se produisent dans le contexte de sécurité approprié. Dans d’autres cas, il peut être souhaitable d’exécuter l’application dans une application différente de celle dans laquelle vous exécutez PsExec, et dans d’autres cas, vous souhaiterez peut-être que l’application distante s’exécute dans le compte système. PsExec prend en charge toutes ces situations.

Par défaut, PsExec exécute des programmes dans un contexte de sécurité « emprunt d’identité ». Cela signifie que si vous exécutez PsExec dans le compte de l’administrateur, le processus distant s’exécute dans le compte de l’administrateur. En raison des restrictions sur la puissance de l’emprunt d’identité, le processus distant n’aura pas accès aux ressources réseau sur le système distant. Si vous spécifiez un nom d’utilisateur et un mot de passe sur la ligne de commande de PsExec, PsExec lance le processus distant dans l’autre compte, et le processus distant a accès à toutes les ressources réseau accessibles à partir de ce compte. Enfin, une option de ligne de commande vous permet d’indiquer à PsExec d’exécuter le processus distant dans le compte système, le même compte que celui dans lequel s’exécutent les services Win32.

Téléchargez PsExec v1.11 à l’adresse http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.

HANDLEEX V4.0

HandleEx est un outil multiforme qui vous montre la liste des processus actifs sur un ordinateur, ainsi que les handles des ressources du système d’exploitation qu’ils ont ouvertes et les DLL qu’ils ont chargées. Sa fonctionnalité de recherche et sa présentation détaillée des propriétés de processus, de handle et de DLL font de HandleEx l’outil idéal pour suivre les problèmes de version de DLL, gérer les fuites et le processus qui accède à un fichier ou à un répertoire particulier.

Si vous avez suivi les mises à jour de Sysinternals, vous remarquerez que HandleEx a sauté de deux numéros de version majeurs au cours des derniers mois. La première mise à jour majeure, v3.0, a introduit un certain nombre de fonctionnalités telles que les icônes d’application dans la vue de processus, les info-bulles pour tous les éléments de vue de liste, une actualisation beaucoup plus efficace et une fonctionnalité de recherche améliorée où vous pouvez cliquer sur les éléments de résultat dans la boîte de dialogue de recherche et faire passer HandleEx à l’entrée de handle ou DLL appropriée.

Toutefois, les fonctionnalités les plus utiles pour les développeurs sont peut-être la mise en surbrillance de l’actualisation et la mise en surbrillance des DLL déplacées. La mise en surbrillance de l’actualisation fait référence au comportement de HandleEx lorsque vous actualisez la vue. Les nouveaux éléments, y compris les processus, les handles ou les DLL chargées, qui n’étaient pas présents avant l’actualisation sont mis en surbrillance en vert, tandis que les éléments qui n’existent plus sont mis en surbrillance en rouge. En plus de vous informer visuellement des modifications, cela vous permet de voir clairement les fuites de gestion en cours, où les handles nouvellement ouvertes s’affichent en vert après une actualisation.

HandleEx met en évidence le déplacement de DLL, qui est lié à la relocalisation de DLL, le terme qui décrit le comportement du chargeur de module dans Windows lorsque ce dernier ne peut pas respecter l’adresse de base préférée que les développeurs spécifient lorsqu’ils construisent une DLL. Le code qu’un éditeur de liens (l’outil utilisé pour la phase finale de la génération DLL ou EXE) produit pour une DLL a des références de mémoire intra-DLL définies avec l’hypothèse que le chargeur respectera l’adresse de base de la DLL. La plage de mémoire dans le processus de chargement d’une DLL qui commence à l’adresse de base et prend en charge la taille de l’image DLL chargée doit être libre pour que la DLL se charge à son adresse de base préférée. Lorsque l’adresse de base est respectée pour plusieurs processus, l’efficacité de l’utilisation de la mémoire est atteinte, car tous les processus partagent la même mémoire de code DLL.

Lorsque le chargeur ne peut pas respecter l’adresse de base d’une DLL, par exemple lorsqu’une autre utilise déjà la plage d’adresses souhaitée, le chargeur doit effectuer une « relocalisation », ce qui implique la mise à jour de toutes les références de mémoire intra-DLL pour refléter l’adresse de charge réelle de la DLL. En plus de ralentir le temps de chargement du processus (généralement de manière imperceptible), l’image DLL déplacée ne peut pas être partagée avec d’autres processus dont la DLL est chargée à l’adresse de base par défaut. Cela signifie que vous obtenez une deuxième copie de la DLL qui consomme de la mémoire.

Lorsque vous êtes en mode DLL, vous pouvez sélectionner l’option « Mettre en évidence les DLL déplacées », ce qui entraîne l’affichage en jaune des entrées pour les DLL qui ne sont pas chargées à l’adresse de base de leur choix. Les développeurs peuvent réinitialiser leurs adresses de base DLL pour éviter les délocalisations.

Qu’en est-il du saut de HandleEx vers la version 4.0 ? Cette dernière version de HandleEx apporte l’affichage complet des handles à la plateforme Win9x/Me. Vous pouvez maintenant sélectionner un processus et voir les handles qu’ils ont ouverts, comme vous pouvez le faire lorsque vous exécutez HandleEx sur WinNT/2K/XP. Non seulement cela, mais également comme sur WinNT/2K/XP, l’affichage des propriétés des événements, des mutexes et des sémaphores révèle des informations sur leur état (conservé, signalé).

Téléchargez HandleEx 4.0 à l’adresse http://www.sysinternals.com/ntw2k/freeware/handleex.shtml.

DEBUGVIEW V4.11

DebugView est un utilitaire de développement qui vous permet de capturer la sortie de débogage à partir d’applications ou de pilotes sur le système local ou distant, même à partir de plusieurs systèmes simultanément. Cette dernière version ajoute la compatibilité avec Windows XP Bêta 2, certaines fonctionnalités de facilité d’utilisation et une fonctionnalité destinée aux développeurs de pilotes d’appareil sur WinNT/2K/XP.

La boîte de dialogue de filtrage de DebugView vous permet de définir des masques de filtre d’inclusion et d’exclusion à affiner sur la sortie de débogage qui vous intéresse. En outre, vous pouvez spécifier jusqu’à 5 filtres de mise en surbrillance différents, chacun avec une couleur personnalisable différente. Auparavant, si vous aviez des projets qui nécessitaient des filtres différents, vous deviez réinscrire les filtres chaque fois que vous changiez de projet. Avec DebugView 4.11, vous pouvez enregistrer des filtres dans un fichier pour un rechargement rapide. Comme auparavant, DebugView commence par les filtres que vous aviez actifs au moment où vous l’avez quitté.

Parfois, il est nécessaire de capturer une trace de sortie de débogage pour une analyse ultérieure ou une comparaison avec d’autres traces. Avant la nouvelle version de DebugView, la seule façon d’afficher un fichier journal était de le charger dans un éditeur de texte, ce qui signifiait que vous ne pouviez pas appliquer de filtres de mise en surbrillance utiles. Vous pouvez maintenant charger un fichier journal DebugView dans DebugView, ce qui vous permet de voir la sortie comme vous l’avez vue lorsque vous l’avez capturé à l’origine. L’utilisation de plusieurs fenêtres DebugView vous permet de comparer les traces.

La dernière nouvelle fonctionnalité, la journalisation au démarrage, complète la prise en charge du vidage sur incident de DebugView dans NT/Win2K. Avec la prise en charge du vidage sur incident de DebugView, vous capturez la sortie d’un pilote de périphérique, et si le pilote bloque le système et que les vidages sur incident sont activés (complet ou noyau), utilisez DebugView pour extraire la sortie de débogage du pilote à partir du vidage, ce qui vous permet de voir la sortie du pilote jusqu’au point de l’incident.

La journalisation au démarrage vous permet de capturer la sortie des pilotes qui se chargent pendant le processus de démarrage en tant que pilotes de démarrage ou de démarrage du système. Le pilote DebugView capture et met en mémoire tampon jusqu’à 1 Mo de sortie de débogage pendant le démarrage après avoir activé la journalisation au démarrage. Une fois le système opérationnel, l’exécution de l’application DebugView importe la sortie mise en mémoire tampon pour l’affichage. Et si votre pilote se bloque pendant le démarrage et que les vidages sur incident sont activés, la prise en charge du vidage sur incident de DebugView vous permet de voir la sortie générée par le pilote avant l’incident.

Téléchargez DebugView v4.11 à l’adresse http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.

DANS WINDOWS 2000, 3e ÉDITION

Le livre officiel sur les composants internes de Windows 2000 est maintenant disponible ! Cette édition, co-auteure par David Solomon (www.solsem.com) et Mark Russinovich, est plus de 40 % supérieure à la précédente, avec une nouvelle couverture des réseaux, plug-and-play, gestion de l’alimentation, services, registre, WMI, démarrage et arrêt, et stockage. Il inclut également un CD avec plusieurs outils puissants, qui ne sont disponibles nulle part ailleurs, pour examiner les éléments internes de Windows 2000.

Si vous accédez à la page Amazon.com du livre, http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131, vous remarquerez que seulement deux commentaires ont été publiés depuis la sortie du livre en septembre. Si vous avez le livre, nous vous encourageons vivement à partager vos opinions avec d’autres lecteurs potentiels.

Consultez la table des matières du livre et commandez maintenant via http://www.sysinternals.com/insidew2k.htm.

MAGAZINE WINDOWS 2000 DE FÉVRIER

Consultez le numéro de février du Magazine Windows 2000 pour mon article sur l’analyse du vidage sur incident NT/Win2K. L’article commence par vous présenter les principes de base de la configuration des vidages sur incident et explique comment le système d’exploitation crée un vidage sur incident (avec des conseils sur la raison pour laquelle un vidage peut ne pas être généré). Ensuite, j’explique où vous pouvez obtenir les derniers outils d’analyse de vidage et comment parcourir l’utilisation d’un nouvel utilitaire Microsoft puissant, Kanalyze. Enfin, je vais examiner rapidement l’utilisation d’un débogueur de noyau pour examiner un vidage. Même si seule une petite fraction des vidages révèle leur cause avec l’analyse, vous devriez trouver les informations utiles.

L’article est publié en ligne via un lien à l’adresse http://www.sysinternals.com/publ.shtml, où vous trouverez des liens vers toutes nos publications.

SYSINTERNALS AT WWW.MICROSOFT.COM

Sysinternals a fait une apparition dans d’autres articles de la Base de connaissances Microsoft (KB) depuis la dernière lettre d’information, portant à 17 le total que j’ai trouvé pour référencer les outils Sysinternals.

  • Q274038 : PRB : Erreur ASP 8002801d « Bibliothèque non inscrite »
    http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
    Cet article dirige les utilisateurs vers Regmon pour résoudre les erreurs de pages Active Server.

  • Q232830 : PROCÉDURE : Déterminer la propriété du handle de fichier
    http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    Vous souhaitez savoir quel processus a ouvert un fichier ? Cet article de la base de connaissances vous dirige vers HandleEx.

  • Q2163868 : PRB : Violation d’accès lors de l’installation de l’application lors de l’utilisation du fichier
    http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    Les applications d’installation de Visual Basic peuvent se bloquer si un fichier qu’elles tentent de copier est en cours d’utilisation. HandleEx est l’outil idéal pour suivre le processus qui interfère.

  • Q286198 : PROCÉDURE : Suivre les erreurs « Autorisation refusée » sur les fichiers DLL
    http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
    À l’aide de Filemon (l’article mentionne également Regmon), vous pouvez voir quel processus d’une application COM ou MTS obtient une erreur « accès refusé ».

  • Q246199 : BOGUE : les paramètres régionaux modifiés dans la procédure stockée étendue peuvent entraîner des résultats incorrects
    http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
    Cet article recommande d’utiliser ListDLLs pour voir quelle version de la bibliothèque C-runtime SQL Server utilise.

  • Q196453 : Résolution des erreurs http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP de démarrage NTVDM et WOW Les utilisateurs rencontrant des problèmes lorsqu’ils démarrent des applications 16 bits sont pointés vers Filemon pour voir les fichiers auxquels le sous-système d’environnement 16 bits (NTVDM) a des erreurs d’accès.

INFORMATIONS INTERNES

RACCOURCIS CLAVIER FROIDS

Beaucoup d’entre vous considèrent probablement la touche Windows sur un clavier plus récent comme une touche prenant simplement de l’espace. C'était le cas jusqu'à récemment, lorsque je suis tombé sur un raccourci clavier de la touche Windows pour une opération que j'effectue fréquemment, et maintenant j'use le logo de la touche à force de l'utiliser. Je pensais partager quelques raccourcis clavier que je trouve utiles, qui fonctionnent tous sur toutes les versions de Windows.

Action Raccourci
Lancer le gestionnaire de tâches ctrl+shift+escape
Afficher la boîte de dialogue Propriétés du système Windows+Break
Réduit toutes les fenêtres. Windows+m
Agrandir toutes les fenêtres Windows+M
Ouvrir le Poste de travail Windows+e
Rechercher un fichier Windows+f
Ouvrir la boîte de dialogue Exécuter Windows+r

Après les avoir déterminés par essai et erreur, David Solomon a souligné qu’ils sont documentés dans l’aide de Windows 2000 sous « Raccourcis clavier naturels ».

MESSAGES DE DÉBOGAGE PNP

Si vous développez des pilotes plug-and-play pour Windows 2000, vous serez peut-être surpris d'apprendre qu'il est possible d'amener même la version de détail de Windows 2000 à produire de nombreux messages de débogage du système plug-and-play au cours de son processus d'énumération et de chargement des pilotes. Faites arrêter votre débogueur de noyau au début du démarrage du système et définissez la variable PnpEnumDebugLevel de noyau interne sur 2 (la plupart des messages se déclenchent avec un niveau 1). Voici un exemple de sortie que vous verrez, qui montre que le Gestionnaire PnP charge le pilote swenum (pilote de bus d’énumération logicielle) :

.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice:         Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice:         Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice:                 Service Name swenum
IopCallDriverAddDevice:                 DriverName is \Driver\swenum
IopCallDriverAddDevice:                 Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice:         Routine returned 00000000
.

DÉCISION D’INGÉNIERIE INVERSE

Ceux d'entre vous qui ont suivi Sysinternals savent que je n'ai accès à aucun code source de Windows (à l'exception des sources des pilotes livrés dans le DDK), et que j'apprends les subtilités de sa mise en œuvre par l'utilisation laborieuse de SoftICE et de mon propre désassembleur.

Je suis tombé sur un article intitulé « Reverse Engineering : Fonction nécessaire ou activité illégale ? » (http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001)), qui décrit une décision de janvier par la Cour d’appel du 9e circuit des États-Unis dans une affaire entre Sony et Connectix qui intéressera ceux d’entre vous qui font de même. Sony a intenté une action en justice contre Connectix après que cette dernière a développé sa « Virtual Game Station », un programme qui permet d'exécuter les jeux de la PlayStation de Sony sur un PC, et le tribunal a jugé que Connectix était dans la légalité lorsqu'elle a procédé à une rétro-ingénierie de la PlayStation (par désassemblage) afin de permettre à la société de développer son émulateur.

Bien que l’étendue de la légalité de l’ingénierie inverse, en particulier en ce qui concerne les licences de récapitulation qui l’interdisent, soit encore vague, cette affaire se situe du côté de l’ingénierie inverse.

MISES À JOUR DU NOYAU WINDOWS XP

Contrairement au déplacement entre NT 4 et Windows 2000, le noyau Windows XP a subi des modifications plus subtiles, dont la plupart visent à améliorer les performances. Les API de noyau disponibles pour les développeurs de pilotes ont été étoffées avec plus de 200 nouvelles fonctions de noyau exportées, remplissant quelques trous précédents. Par exemple, Filemon et un autre outil Sysinternals obtiennent le nom du processus effectuant une opération en atteignant le bloc d’environnement de processus non documenté . Dans Windows XP, ils pourront appeler PsGetProcessImageFileName. Il existe près de 3 douzaines de nouveaux appels Ps pour l’obtention et la définition d’attributs de processus, de nouvelles API de sortie de débogage qui vous permettent de classer le type de sortie et le niveau de débogage, et un nouvel appel système pour l’enregistrement des ruches du Registre. Il existe également une poignée d’API telles que ZwQueryBootOptions, ZwSetBootEntryOrderet ZwDeleteBootEntry pour modifier l’équivalent Windows XP 64 bits de Boot.ini, qui au lieu d’être stocké dans un fichier, est stocké sur la mémoire non volatile.

Toutefois, il existe des modifications plus importantes au-dessus du noyau, dont la plupart s’appuient sur les pilotes de périphérique ou la prise en charge du noyau. Par exemple, il existe un service de restauration du système qui, à l’aide d’un pilote de filtre de système de fichiers (sr.sys), effectue le suivi des modifications apportées aux fichiers afin que le système puisse être restauré à un point précédent dans le temps. Il existe un pilote de filtre de stockage nommé volsnap.sys qui peut, avec la coopération des pilotes de système de fichiers, effectuer une copie dans le temps d’un volume. Il existe un service de basculement rapide d’utilisateur qui utilise la prise en charge des services terminal intégrés au noyau pour permettre à plusieurs utilisateurs d’être connectés et de basculer entre les deux, et une prise en charge améliorée de l’API de défragmentation fournie par les pilotes de système de fichiers.

Microsoft a publié un livre blanc qui décrit un grand nombre des améliorations apportées à http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip. Il existe des degrés de détail variables, ce qui laisse de nombreuses questions sur l’implémentation et le comportement sans réponse, mais c’est une assez bonne révision globale. Bien sûr, vous pouvez consulter les futurs bulletins et articles Sysinternals, et mes articles de magazine Windows 2000, pour répondre à certains d’entre eux.

RÉSEAU DÉCONNECTÉ

La plupart de mes centres de développement se concentrent sur les applications réseau, mais sur Windows 2000, vous ne pouvez pas tester de telles applications lorsque vous démarrez un ordinateur déconnecté (comme un ordinateur portable) dans la configuration par défaut. En effet, la pile TCP/IP n’est activée que si le système détecte une connexion réseau. Cela signifie, par exemple, que dir \\laptop\c$ (où « ordinateur portable » est le nom de votre ordinateur) et queping 127.0.0.1 les deux échouent sur les systèmes déconnectés. Si vous avez un ordinateur basé sur un domaine, cela peut également entraîner des retards douloureux pendant le démarrage.

Il existe deux solutions de contournement. L’une consiste à installer l’adaptateur de bouclage Microsoft, qui est une carte réseau virtuelle installable à l’aide de l’Assistant Matériel. La deuxième consiste à désactiver l’sens multimédia, ce qui empêche le système de détecter que son est déconnecté, en définissant une valeur de Registre comme décrit dans l’article de la base de connaissances Microsoft Q239924 : http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP. Avec l’une de ces approches, la pile TCP/IP est active même sur les systèmes déconnectés, ce qui vous permet d’accéder au système local via des API réseau et des chemins UNC (comme \\laptop\c$).

WINDEV

Windev, la conférence des développeurs Windows, se tiendra cette année à Boston du 11 au 15 juin. Tous les principaux noms de Win32, systèmes et programmation .NET seront là, et c’est la seule fois cette année que vous pouvez assister à une session sur les internes de Windows 2000 présentée par David Solomon (www.solsem.com) et moi. Dave et moi fournissons conjointement le tutoriel d’une journée « Inside Windows 2000 Fundamentals » le premier jour. J’enseigne également une session sur la programmation des mécanismes de communication interprocessus dans Windows et une session sur les nouveautés de Windows XP.

Vous pouvez voir les résumés de mes conférences et trouver un lien vers le site Web Windev à l’adresse http://www.sysinternals.com/ntw2k/info/talk.shtml.

TECHED US

TechEd est la première conférence de Microsoft, attirant 10 000 personnes et affichant complet depuis plusieurs années. Cette année, il se tiendra à Atlanta, en Géorgie, du 17 au 21 juin, et bien que l'accent soit mis sur .NET, Microsoft m'a invité à présenter « A Tour of Sysinternals Tools » et « Introduction to Windows NT/2000 Crash Dump Analysis » (Introduction à l'analyse des vidages d'urgence de Windows NT/2000). David Solomon sera également présent, présentant sur la gestion de la mémoire Windows 2000 et les internes de processus et de threads.

Pour ceux d’entre vous en Europe, vous pouvez voir David et moi présenter les mêmes sessions à TechEd Europe, qui est à Barcelone du 3 au 6 juillet.

Afficher mes résumés et suivre un lien vers la page d’accueil de TechEd à partir de http://www.sysinternals.com/ntw2k/info/talk.shtml.

NOUVEAUTÉS À VENIR

À L’INTÉRIEUR DE WINDOWS XP PREFETCHING

L’une des améliorations les plus notables de Windows XP est son temps de démarrage rapide. La pré-récupération est la base de l’amélioration. XP surveille l’accès au disque pendant un démarrage, stockant les informations à utiliser dans le démarrage suivant, où il utilise les données pour charger des applications en mémoire avant qu’elles ne soient référencées. La prochaine fois, j’irai à l’intérieur des mécanismes de pré-édition pour expliquer comment XP les implémente.


Merci d'avoir lu la newsletter Sysinternals.

Publié le mercredi 18 avril 2001 à 19:04 par ottoh

[Archives des newsletters ^] [< Volume 2, Numéro 5] [Volume 3, Numéro 2 >]