DDK et service.

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 5 oct. 2007 à 17:03
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 8 oct. 2007 à 21:20
Yop à tous,

Voila je travail sur un service que j'avais codé sous XP et qui fait un acces à la registry avec les API Reg... et qui biensur ne fonctionne pas sous vista, la registry étant protégée. Donc je me suis dit , comme un service est un programme système, je doit pouvoir utiliser les fonctions du DDK. J'ai donc trouver : ZwOpenKey() et ZwQueryValueKey .

Seulement je ne comprend pas très bien leur utilisation. Car de 1 ZwOpenKey renvoie un pointeur sur HANDLE, est-ce l'équivalent à HKEY ? et puis il y à aussi le dernier paramètre de cette fonction , un pointeur sur une structure OBJET_ATTRIBUTES qui me parait vague.

Et pour la deuxième fonction, moi je veu simplement récuperer la valeur de ma key , mais aparament, je suis obligé de récuperer plus d'informations et vu les champs de la structure. Enfin bref , je ne sais pas trop, c'est fonctions me paraissent fort vague comparé aux API du SDK.

Est-ce que quelqu'un pourrait me montrer un exemple ou autre ? car là je sèche.

Merci d'avance.
++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]

27 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
8 oct. 2007 à 18:14
Salut,


En plus de HKLM pas forcément dispo tout de suite, il faut aussi faire
gaffe à HKCU :  le compte LocalSystem n'utilise pas le même HKCU
que l'utilisateur courant.

http://msdn2.microsoft.com/en-us/library/ms684190.aspx

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
0
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
8 oct. 2007 à 19:09
Un service est par essence une clé du registre dans HKLM...
Donc si un service se lance c'est que forcément HKLM est dispo.. a preuve du contraire....
Par contre il est évident que HKCU n'est pas celui de l'utilisateur courant car il s'agit du compte localsystem
0
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
8 oct. 2007 à 19:10
.... dans le cas de l'exemple du post..
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 oct. 2007 à 19:37
C'est quoi cette déduction ???
Fort heureusement que ce n'est plus ainsi, nimporte qui pouvant accéder à nimporte quoi, ce qui amenait le système à se vautrer quand un prog plantait, le bon temps des system 16 bits.
Le loader system lit ce qu'il veut, pas pour autant que la ressource est dispo pour les autres.

Je le signale parce que ça a été confirmé.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
8 oct. 2007 à 20:31
Je suis désolé de ne pas répomdre plutot, mais prob personnel en ce moment, vicenzo, je posterai la source soite plus tards ce soir ou demain matin.

Encore déso.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
8 oct. 2007 à 21:10
Les services en démarrage auto qui ne sont pas des drivers et qui ne sont pas en boot start sont lancés par le contrôleur de services ( qui est lancé après session manager qui a terminé de monter les ruches system, hardware et localmachine.

Le boot de NT6 est certe différent mais garde le même principe.

OK,, l'accès au registre est forcément controlé... NT5/6 ne sont pas du vulgaire 95... Néanmoins, HKLM est accessible, hormis clés protégées, à un service dont le démarrage est type auto.

Sinon comment un winlogon, une instance Oracle, un antivirus, un firewall pourrait se lancer sans accès à HKLM ?

Les descriptions du process de boot de NT5/6 ne me monte en aucun cas le contraire.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 oct. 2007 à 21:20
Bien entendu que c'est accessible, pour autant je relaie l'info comme quoi sous Vista il peut y avoir à gérer un prob de délai de disponibilité.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous