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 :

ERROR_INVALID_HANDLE : The handle is invalid.


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut ERROR_INVALID_HANDLE : The handle is invalid.
    Bonjour à tous,
    Je code en c++ avec la librairie windows.h et j'ai un problème que je ne comprends pas.
    J'ai recopié le code de la doc Microsoft et ça fais 3 jours que j'essaye de le bidouiller, et ça ne fonctionne toujours pas ... (https://support.microsoft.com/en-us/kb/131065)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!AdjustTokenPrivileges(handle_token, false, &tkp, 0, NULL, NULL))
    {
           // afficher l'erreur
    }
    J'ai l'erreur ERROR_INVALID_HANDLE sur cette fonction alors que mon handle_token s'est créé sans erreur avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OpenProcessToken(handle, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &handle_token)
    Quelqu'un aurait une idée ?
    Es-ce un problème 32/64 bit ou un truc du genre ?


    PS: Je développe avec Qt sous Windows 10 et je compile avec MinGW 32bit

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Donc, tu vérifies le retour de OpenProcessToken() et il retourne bien TRUE? Bizarre.
    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.

  3. #3
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut re
    Oui c'est bizarre, c'est pour cela que je demande de l'aide !
    En faite je pense que le problème ne vient pas de mon handle_token mais je sais pas trop ...

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut,
    Citation Envoyé par Matthieu76 Voir le message
    J'ai recopié le code de la doc Microsoft et ça fait 3 jours que j'essaye de le bidouiller, et ça ne fonctionne toujours pas ... (https://support.microsoft.com/en-us/kb/131065)
    T'as dû grave le bidouiller et/ou le recopier à l'arrache, car l'appel à OpenProcessToken que tu essayes d'utiliser est absent sur la page que tu nous donnes...

    Par ailleurs, l'autre appel, AdjustTokenPrivileges, utilisé 3 fois sur la page, passe un paramètre avec une taille définie quand toi tu le passes à 0. Pas sûr que ça le fasse.

  5. #5
    Membre chevronné
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Par défaut
    Bonjour.

    On peut utiliser indifféremment OpenProcessToken ou OpenThreadToken suivant ce qu'on veut faire.
    L'explication de Microsoft porte sur le thread.
    Matthieu76 a choisi d'utiliser le process.

    Quant aux 3 derniers paramètres de AdjustTokenPrivilege, ils peuvent être nuls.
    Voir https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

    L'erreur ne vient donc pas de là ...

    Lorsqu'on utilise OpenProcessToken pour changer les privilèges, le premier paramètre doit avoir été créé par GetCurrentProcess.
    Est-ce le cas ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Ah, on ne peut pas changer les privilèges d'un autre processus?
    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.

  7. #7
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut re
    Tu as raison, j'ai vu partout des GetCurrentProcess() mais ce n'est pas ce que j'utilise car je cherche à modifier les privilèges d'un autre process pour accès au droit PROCESS_VM_READ.
    Du coup ce que je cherche à faire est impossible ?

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Tu veux que ton programme A donne à un processus B le privilège Debug, pour que celui-ci puisse aller lire la mémoire d'un processus C?
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2011, 11h45
  2. Réponses: 10
    Dernier message: 15/10/2011, 22h21
  3. invalid handle: kesako?
    Par ataya dans le forum JDBC
    Réponses: 5
    Dernier message: 18/05/2007, 12h26
  4. dbExpress error: Invalid handle
    Par lassmust dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/11/2006, 12h04

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