j'ai une petite question concernant le passage de handle via la fonction
CreateProcess.
Voici la situation:
j'ai un process "A" qui démarre un process "B", puis qui se boucle sur
un accept dans l'attente d'un message.
Je souhaiterais qu'une fois l'accept passé, le process "B" soit en
mesure de traiter (lecture + écriture) le socket à la place du process "A".
CreateProcess permet (via bInheritHandles) de mettre à disposition de
"B" les handles existants de "A"... mon problème est qu'au démarrage de
"B", le socket créé par l'accept n'existe pas encore.
Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe Leitienne
Fred wrote: > Voici la situation: > j'ai un process "A" qui démarre un process "B", puis qui se boucle sur > un accept dans l'attente d'un message. > Je souhaiterais qu'une fois l'accept passé, le process "B" soit en > mesure de traiter (lecture + écriture) le socket à la place du process "A". > CreateProcess permet (via bInheritHandles) de mettre à disposition de > "B" les handles existants de "A"... mon problème est qu'au démarrage de > "B", le socket créé par l'accept n'existe pas encore. > > Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit utilisable dans B avec la fonction DuplicateHandle. Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans B) avec l'IPC de ton choix.
Fred wrote:
> Voici la situation:
> j'ai un process "A" qui démarre un process "B", puis qui se boucle sur
> un accept dans l'attente d'un message.
> Je souhaiterais qu'une fois l'accept passé, le process "B" soit en
> mesure de traiter (lecture + écriture) le socket à la place du
process "A".
> CreateProcess permet (via bInheritHandles) de mettre à disposition de
> "B" les handles existants de "A"... mon problème est qu'au démarrage de
> "B", le socket créé par l'accept n'existe pas encore.
>
> Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit
utilisable dans B avec la fonction DuplicateHandle.
Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans
B) avec l'IPC de ton choix.
Fred wrote: > Voici la situation: > j'ai un process "A" qui démarre un process "B", puis qui se boucle sur > un accept dans l'attente d'un message. > Je souhaiterais qu'une fois l'accept passé, le process "B" soit en > mesure de traiter (lecture + écriture) le socket à la place du process "A". > CreateProcess permet (via bInheritHandles) de mettre à disposition de > "B" les handles existants de "A"... mon problème est qu'au démarrage de > "B", le socket créé par l'accept n'existe pas encore. > > Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit utilisable dans B avec la fonction DuplicateHandle. Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans B) avec l'IPC de ton choix.
Fred
Christophe Leitienne wrote:
Fred wrote: > Voici la situation: > j'ai un process "A" qui démarre un process "B", puis qui se boucle sur > un accept dans l'attente d'un message. > Je souhaiterais qu'une fois l'accept passé, le process "B" soit en > mesure de traiter (lecture + écriture) le socket à la place du process "A". > CreateProcess permet (via bInheritHandles) de mettre à disposition de > "B" les handles existants de "A"... mon problème est qu'au démarrage de > "B", le socket créé par l'accept n'existe pas encore. > > Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit utilisable dans B avec la fonction DuplicateHandle. Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans B) avec l'IPC de ton choix.
Ok, merci beaucoup. A et B communiquent déjà via un pipe nommé... le handle dupliqué sera donc véhiculé par là.
Fred
Christophe Leitienne wrote:
Fred wrote:
> Voici la situation:
> j'ai un process "A" qui démarre un process "B", puis qui se boucle sur
> un accept dans l'attente d'un message.
> Je souhaiterais qu'une fois l'accept passé, le process "B" soit en
> mesure de traiter (lecture + écriture) le socket à la place du
process "A".
> CreateProcess permet (via bInheritHandles) de mettre à disposition de
> "B" les handles existants de "A"... mon problème est qu'au démarrage de
> "B", le socket créé par l'accept n'existe pas encore.
>
> Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit
utilisable dans B avec la fonction DuplicateHandle.
Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans
B) avec l'IPC de ton choix.
Ok, merci beaucoup.
A et B communiquent déjà via un pipe nommé... le handle dupliqué sera
donc véhiculé par là.
Fred wrote: > Voici la situation: > j'ai un process "A" qui démarre un process "B", puis qui se boucle sur > un accept dans l'attente d'un message. > Je souhaiterais qu'une fois l'accept passé, le process "B" soit en > mesure de traiter (lecture + écriture) le socket à la place du process "A". > CreateProcess permet (via bInheritHandles) de mettre à disposition de > "B" les handles existants de "A"... mon problème est qu'au démarrage de > "B", le socket créé par l'accept n'existe pas encore. > > Y'a-t-il un moyen, à votre connaissance, de faire une telle chose?
Oui: dans A tu dupliques le handle de la socket afin qu'il soit utilisable dans B avec la fonction DuplicateHandle. Ensuite tu transmet ce nouveau handle à B (et utilisable uniquement dans B) avec l'IPC de ton choix.
Ok, merci beaucoup. A et B communiquent déjà via un pipe nommé... le handle dupliqué sera donc véhiculé par là.