So, I decided to give it a go. This is the cpython code: info = GetSecurityInfo(GetCurrentProcess(),6,0) SetSecurityInfo(process, 6, win32.win32security.DACL_SECURITY_INFORMATION | win32.win32security.UNPROTECTED_DACL_SECURITY_INFORMATION, None, None, info.GetSecurityDescriptorDacl(), info.GetSecurityDescriptorGroup())
When I run in IronPython, the following happens: GetSecurityInfo returns an integer. This means I cannot do info.GetSecurityDescriptorDacl() etc If I leave out the last two (optional) parameters to SetSecurityInfo, I get a return code of 998. Looking this up in winerror.h gives ERROR_NOACCESS. This is not a rights problem afaik, since I am running ipy with Admin rights. Ok, so at this point, I thought "screw it, I'll do it in C#". So, my C# code is simple for testing: using System; namespace UnmanagedCode { public class processSecurity { public int getValue(int value) { return value + 1; } } } I compile it in VS2010 Express as a .NET Framework 4.0. I end up with a DLL file. I then copy that DLL into a clean directory, and launch ipy.exe in that directory. IronPython 2.6 (2.6.10920.0) on .NET 2.0.50727.4952 Type "help", "copyright", "credits" or "license" for more information. >>> import clr >>> clr.AddReferenceToFile("UnmanagedCode.dll") Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: System.IO.IOException: Could not add reference to assembly UnmanagedCode.dll So, I imported sys, and checked the path... the current directory is in the path. At this point, I cannot figure out wtf is wrong. I have looked and read and googled etc but the examples all seem to be outdated and 'just work'... but not when I attempt them! Some pointers as to how to get this working would be nice ! -Bye -Richard On Wed, Sep 22, 2010 at 2:20 PM, Lukas Cenovsky <cenov...@bakalari.cz> wrote: > On 22.9.2010 20:03, Jeff Hardy wrote: > > On Wed, Sep 22, 2010 at 11:36 AM, Richard Steventon <steven...@gmail.com> > wrote: > > Next question in my quest to open a process and read its memory: > from win32.win32security import GetSecurityInfo, SetSecurityInfo > > How do I get access to those in IronPython ? > > Unfortunately, I don't think anyone has ported the win32 module to > IronPython yet (it's a big, complicated module). > > You could use ctypes: > > ctypes.windll.advapi32.GetSecurityInfo(...) > > GetSecurityInfo has a fairly complicated signature (see > http://msdn.microsoft.com/en-us/library/aa446654(VS.85).aspx) that > will probably require working fairly closely with ctypes > (http://docs.python.org/library/ctypes.html) to get it to work. > > Unfortunately, out of the box, that's all the IronPython provides. > > - Jeff > > P.S. If you need to know the DLL to use with ctypes.windll, look up > the function on MSDN and look for the DLL name near the bottom of the > page. > > You can use clrtype instead of ctypes to call native functions - see > (Sample) ClrType.zip. > > -- > -- Lukáš > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com