DllImport RtlSetProcessIsCritical

lemonwarez Messages postés 26 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 2 juillet 2010 - 26 avril 2010 à 19:47
lemonwarez Messages postés 26 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 2 juillet 2010 - 1 mai 2010 à 16:25
Bonjour,

Je suis en train de faire un logiciel de contrôle parental et pour eviter que quelqu'un termine le processus j'ai fais quelques recherches sur google est je suis tomber sur RtlSetProcessIsCritical. (http://www.codeproject.com/KB/winsdk/RtlSetProcessIsCritical.aspx)
Malheureusement, la source est en C++ et je travaille en CSharp.
J'ai donc essaye de faire "DllImport" mais mon programme ne semble par marcher (Aucune erreur mais le processus peut être terminer sans problème en mode administrateur.)

Voila une partie de mon code :

[DllImport("NTDLL.DLL",EntryPoint = "RtlSetProcessIsCritical")]
        static unsafe extern IntPtr RtlSetProcessIsCritical(Boolean bNew, Boolean *pbOld, Boolean bNeedScb);


Et dans unsafe Form1_Load :

RtlSetProcessIsCritical(true, null, false);


Mais rien ne fonctionne.

Quelqu'un peut-il m'aider ? Merci.

8 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
26 avril 2010 à 23:32
Salut, l'article sur codeproject parle de privilèges "SE_DEBUG_NAME".
0
lemonwarez Messages postés 26 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 2 juillet 2010
27 avril 2010 à 00:33
Oui mais c'est uniquement pour les privileges. Or mon application sera deja lancee en Administrateur avec les droits UAC.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 avril 2010 à 13:03
Ils font combien d'octets les Boolean de la version C++ ? Dllimport par défaut c'est 4 octets.
0
lemonwarez Messages postés 26 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 2 juillet 2010
29 avril 2010 à 18:10
Les boolean de C++ font 1 octet
0

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

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 mai 2010 à 10:50
tsss merci je sais, mais c'est pas ma question, je te demande pas combien font les "bool" du C++ mais combien font les "BOOLEAN" de la version C++ telle qu'elle est definie sur codeproject !

je me répète mais là avec DllImport tu as marshallé des bools de 4 octets.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 mai 2010 à 11:01
Si c'est le type Windows 'typedef BYTE BOOLEAN' ok pour 1 octet mais c'est peut être un autre alias.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 mai 2010 à 11:06
Si tu marshalle en unsafe coté C# tu peux également utiliser le type "byte" sinon utilise l 'attribut [ MarshalAs( UnmanagedType.I1 ) ]
0
lemonwarez Messages postés 26 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 2 juillet 2010
1 mai 2010 à 16:25
Okay merci je vais voir ça ;)
0
Rejoignez-nous