IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Recupérer le nom image du processus


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Par défaut Recupérer le nom image du processus
    Bonjour,

    Je recupére le handle du processus lut par mon driver à l'aide de la fonction
    DeviceIoControl

    En Kernel-mode.
    HANDLE
    PsGetCurrentProcessId(
    VOID
    );

    Je recupére donc le HANDLE du processus recupére à l'aide de la fonction
    DeviceIocontrol.

    Mais en user-mode quel api windows faut t'il utiliser pour recupérer les informations de ce processus (ex nom de l'image,PID etc.) ????
    Merci beaucoup.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 521
    Par défaut
    Je ne suis pas sûr qu'un handle récupérer en kernel-mode soit fonctionnel en user-mode, sinon :
    NtQueryInformationProcess
    http://msdn.microsoft.com/en-us/libr...80(VS.85).aspx

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Je ne suis pas sûr qu'un handle récupérer en kernel-mode soit fonctionnel en user-mode
    Cela m'étonnerait beaucoup moi aussi.
    Regarde aussi du côté de GetModuleFileName et GetCurrentProcessId, et de façon générale le topic Processes and Threads de MSDN.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    Bonjour,
    un HANDLE n'est pas un pointeur mais bien un nombre.
    Si j'en crois PsGetCurrentProcessId()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    returns the process ID of the of the current thread's process.
    Donc techniquement l'information qu'il récupère est un PID valable en userland, il peut donc (avec les droits adéquat) faire un OpenProcess dessus suivi par un NtQueryInformationProcess non?

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Pourtant, en user-mode, tu as bien deux concepts différents: Le Process ID (un DWORD) et le handle de processus ouvert (un HANDLE)...

    OpenProcess() et GetProcessId() m'en sont témoins, ainsi que GetCurrentProcess() (retourne un pseudo-handle valide uniquement dans le processus courant) et GetCurrentProcessId() (retourne un DWORD toujours valide)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    On est bien d'accord pour l'user mode.
    Cela dis je ne fais que de me référer a la MSDN sans plus.

    Il existe des handles globaux, et il me semble logique que dans le kernel le PID d'un processus soit un handle global sur celui-ci. (c'est même sa fonction première non?)
    Pourquoi ce n'est pas pareil en userland? car deux applications peuvent avoir besoins d'ouvrir un handle sur le même processus et qu'il faut bien distinguer les deux (et donc le handle ne peut être égal au PID du processus a atteindre).

    enfin c'est ce que je pense, il existe peut être d'autre raison mais celle-ci me semble parfaitement logique (je peux me tromper).

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Attention aussi aux confusions possibles (y compris de doc sur MSDN, l'erreur est humaine...) avec Windows CE : sous CE, le handle sur un processus/thread est IDENTIQUE (au cast près) au PID/TID, et il est donc "partageable" (mais bon, crado quand même).

    Ceci est par contre FAUX par défaut sur les noyaux NT, ne serait-ce qu'à cause des droits NT : deux handles ouverts avec des droits différents sont différents entre eux, et ne peuvent donc pas être égaux au PID ("H1==PID" ET "H2==PID" ET "H1!=H2" n'a bien sûr pas de solution).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. recupérer le nom de l'extension d'une image
    Par benyamin dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 06/05/2008, 14h25
  2. Récuperer le handle depuis le nom d'un processus
    Par dacid dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/04/2006, 10h16
  3. Lire le nom d'un processus
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 20/03/2006, 10h23
  4. [BCB5][IBX5.4]Recupérer le nom du serveur ??
    Par Sitting Bull dans le forum Débuter
    Réponses: 1
    Dernier message: 19/10/2004, 19h01
  5. [Winsock] Envoi et recupération d'une image
    Par arnolanf dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/11/2002, 08h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo