begin process at 2012 05 30 07:27:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Driver

 > 

Question sur les Event


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Question sur les Event

lundi 30 août 2010 à 13:08:56 | Question sur les Event

Albanderuaz

Bonjour,

J'ai une question concernant le partage d'event entre application et driver.
Dans mon application, je crée un event et j'envoie son handle au driver. Je le référence, et lorsque ce dernier 'signale' l'évènement, l'application détecte bien son changement d'état, tout va bien.
Maintenant, si mon application est quittée ou crash à la suite d'un bug, l'évènement n'est plus valide au niveau du driver. J'obtiens un bsod lorsque KeSetEvent est appelée si l'application ne tourne plus.

Y a-t-il un moyen de vérifier si un event est encore valide avant d'appeler KeSetEvent pour éviter ce genre de problèmes?

Merci beaucoup!
mardi 31 août 2010 à 12:20:38 | Re : Question sur les Event

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Tu utilises bien ObReferenceObjectByHandle ?

Normalement, ça devrait permettre d'incrémenter le compteur d'utilisation, donc l'event devrait disparaître si l'appli et le driver tombent.

If the call succeeds, a pointer to the object body is returned to the caller and the pointer reference count is incremented. Incrementing this count prevents the object from being deleted while the pointer is being referenced. The caller must decrement the reference count with ObDereferenceObject as soon as it is done with the object.

mardi 31 août 2010 à 13:08:10 | Re : Question sur les Event

Albanderuaz

Donc si j'ai bien compris, si l'application disparaît, l'event est toujours valide du côté du driver?
mardi 31 août 2010 à 13:10:26 | Re : Question sur les Event

rt15

Membre Club Administrateur CodeS-SourceS
Bin normalement oui.
mardi 31 août 2010 à 13:38:35 | Re : Question sur les Event

Albanderuaz

D'accord, merci beaucoup!

Dernière question, si maintenant le driver déréférence l'objet, y a-t-il un moyen de savoir au niveau de l'application de savoir que l'event n'est plus valide?

Merci!
mardi 31 août 2010 à 13:55:42 | Re : Question sur les Event

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Tu veux dire être informé si le driver à perdu sa référence sur l'event ?

Je ne crois pas qu'il y ait de méthode (Encore qu'il doit être plus ou moins possible de récupérer la valeur du compteur de références sur l'event).

Par contre, tu peux peut être bricoler un bout de code. Par exemple tu t'arrange pour que ton appli n'est pas de référence sur l'event (CloseHandle). Puis tu essais de l'ouvrir via son nom (OpenEvent). Si le driver a une référence sur l'event, il devrait exister donc OpenEvent devrait fonctionner. Si le driver n'a pas de référence sur l'event, l'event devrait avoir été détruit, donc OpenEvent devrait échouer.

Mais bon c'est pas top top quand même.
mardi 31 août 2010 à 17:40:01 | Re : Question sur les Event

Albanderuaz

D'accord, merci beaucoup, je vais faire cela.


Cette discussion est classée dans : application, question, driver, évènement, event


Répondre à ce message

Sujets en rapport avec ce message

Question toute bête [ par mistere ] Voila, je voudrais savoir comment il faut faire via mon application pour appuyer sur un bouton d'une autre application (genre Hitman pro)?Si quelqu'un Question sur FrameWork [ par SeBaZaToR2 ] Salut à tous, toutes, Je me demandais s'il était possible d'écrire une application Windows (graphique) et lors de son exécution (.exe), ne pas avoir compilation express c++ 2005 [ par bouks69 ] Bonjour à tous, voilà je pense que la question que je vais poser a une question toute simple, mais bon j'ai un peu cherché (google étant mon ami, enfi Application de questionnaires [ par jpcoffe ] Je souhaite développer une application permettant de répondre à un questionnaire sous forme de QCM. Le questionnaire doit pouvoir contenir un très gra petite question [ par baby3378 ] bonjour a tous ,Voila je voudrai savoir comment une application pourrait connètre son adressse (ex:c:\\test\\application.exe)Existe il un fonction qui Question de base sur le MC++ [ par programmeur69 ] BonjourVoici un petit problème que je rencontre sous visual Studio 2008 express editionMon but est d'accéder à une base de données Access, Excel ou au C++ Builder quelques question [ par megamario ] Bonjour, J'aurais besoin de quelque petit renseignement sous C++builder 6 1er: On fait un mini chat au lycée et je voudrais savoir comment reconnait Reception d'évènement d'une autre application [ par rcyril ] Bonjour,je souhaiterais a partir de mon application, surveiller les actions d'une autre application ouverte.exemple:---------lorsque l'on appuis sur l windows application [ par brownfire ] bonjours je sais que ma question est bête mais je n'ai pa d'autre choix que de demander a des gens qui en savent beacoup plus que moi sur le c++ ma qu Portabilité d'un programme ? [ par chtitpierre78 ] Bonjour,Je me pose une question vis à vis de la portabilité d'une application développée en C (ici, en mode console).Je dois en fait coder un programm


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales