Bonsoir,
Déjà pour précision, je réalise mon service à partir du squelette fait par Farscape et décrit dans la FAQ VC++.
Je rencontre un problème lorsque le service doit se fermer de lui même. Ceci pour un cas particulier.
Si je démarre mon service manuellement et que je me mets dans le cas particulier où le service doit se fermer de lui même, je ne rencontre aucun soucis.
Par contre, si je redémarre mon pc, le service en question démarre automatiquement mais lorsqu'il doit se fermer de lui même, j'obtiens un joli message de plantage...
Apparemment, à l'aide d'un debugger, je planterais dans NTDLL. Ca m'avance guère! Je constate aussi avec une message box que "ServiceMain()" se termine. L'erreur arrive quelques secondes après.
Voici grossomodo le principe que j'utilise pour fermer mon service:
Quelqu'un aurait il une idée du pourquoi d'un tel comportement? ou une autre façon de mettre en oeuvre la fermeture du service par lui même?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DWORD ServiceThread(LPDWORD param) { MaFonction(); //ServiceCtrlHandler(SERVICE_CONTROL_STOP); <- J'ai fait un test ainsi mais NOK ::SetEvent(hTerminateEvent); return 0; }
Merci.
Nicolas
Partager