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 :

Thread Handle et SECURITY_ATTRIBUTES


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut Thread Handle et SECURITY_ATTRIBUTES
    Et encore une question de plus sur les handle dans ce forum...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createthread.asp
    HANDLE WINAPI CreateThread(
      LPSECURITY_ATTRIBUTES lpThreadAttributes,
      SIZE_T dwStackSize,
      LPTHREAD_START_ROUTINE lpStartAddress,
      LPVOID lpParameter,
      DWORD dwCreationFlags,
      LPDWORD lpThreadId
    );
    
    [...]
    lpThreadAttributes : A pointer to a SECURITY_ATTRIBUTES structure that determines 
    whether the returned handle can be inherited by child processes. 
    [...]
    
    *Détermine si le handle peut être hérité par un processus fils ou pas.
    Qu'est ce que cela signifie le handle ne peut pas être hérité ? Cela veut il dire qu'il sera impossible d'en récupérer un nouveau ? J'éspére qu'on parle bien uniquement des processus fils et que les threads créé par ce thread ne sont pas concerné. Si on peut m'expliqué plus en détail ce principe d'héritage ce serai sympa.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Ca veut pas plutot dire que le thread crée ne peut pas hériter du handle de son parent (donc le thread qui fait appel à CreateThread)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  3. #3
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Un processus fils peut utiliser les handles créer par son processus parent.

    Seulement, seul les handles héritables peuvent être utilisés.

    Et le membre bInheritHandle de SECURITY_ATTRIBUTES permet de spécifier si l'handle qui va être créé sera héritable ou pas.
    L'itération est humaine; la récursion, divine.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    -1 Hegros
    +1 Mayti4.

    Le fait qu'un handle soit héritable ou non agit sur le fonctionnement de CreateProcess(). Si le flag bInheritHandles de CreateProcess() est vrai, les handles héritables seront valides dans le processus fils (et dupliqués : fermer un handle dans le père ne gènera pas le fils).
    Enfin, pour que le fils puisse s'en servir, encore faut-il qu'il connaisse la valeur de ces handles (on peut les passer sur la ligne de commande, par exemple).
    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.

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Médinoc
    -1 Hegros
    +1 Mayti4.

    Le fait qu'un handle soit héritable ou non agit sur le fonctionnement de CreateProcess(). Si le flag bInheritHandles de CreateProcess() est vrai, les handles héritables seront valides dans le processus fils (et dupliqués : fermer un handle dans le père ne gènera pas le fils).
    Enfin, pour que le fils puisse s'en servir, encore faut-il qu'il connaisse la valeur de ces handles (on peut les passer sur la ligne de commande, par exemple).
    C'est ce que je disais...Si le flag est à faux alors le fils ne pourra pas utiliser le handle parent à moins que se soit plus subtil...
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Citation Envoyé par hegros
    Ca veut pas plutot dire que le thread crée ne peut pas hériter du handle de son parent
    Nous, on dit qu'un éventuel processus fils ne pourra pas hériter du handle du thread créé si le flag est faux.
    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.

Discussions similaires

  1. [C# MultiThreading]"Fuites" de Handle ou de Thread
    Par djseb dans le forum Framework .NET
    Réponses: 2
    Dernier message: 14/05/2008, 11h09
  2. Relation de Handle d'une fiche avec un Thread
    Par DarkinGoD dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2008, 19h05
  3. Réponses: 6
    Dernier message: 12/07/2007, 19h13
  4. Réponses: 4
    Dernier message: 09/02/2007, 11h31
  5. [D5] Handle de DLL identique pour tout les threads
    Par yves_fuji dans le forum Delphi
    Réponses: 6
    Dernier message: 09/08/2006, 16h37

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