[System.Runtime.InteropServices.DllImport("advapi32.dll", SetLastError=true)]
private static extern uint LsaFreeMemory(System.IntPtr pBuffer);
Private Declare Function LsaFreeMemory Lib "advapi32.dll" ( _
ByVal Buffer As IntPtr _
) As Integer
None.
Do you know one? Please contribute it!
'NTSTATUS LsaFreeMemory(
' PVOID Buffer
');
Please add some!
// You should already have the HPolicy and SID ready
IntPtr rightsPtr;
uint countOfRights;
LsaEnumerateAccountRights(HPolicy, SID, out rightsPtr, out countOfRights);
try
{
IntPtr ptr = rightsPtr;
LSA_UNICODE_STRING userRight;
for (int i = 0; i < countOfRights; i++)
{
userRight = (LSA_UNICODE_STRING)Marshal.PtrToStructure(ptr, typeof(LSA_UNICODE_STRING));
String userRightStr = Marshal.PtrToStringAuto(userRight.Buffer);
Console.WriteLine("Another Privilege found: " + userRightStr);
ptr = (IntPtr)((Int32)ptr + Marshal.SizeOf(userRight));
}
}
finally
{
LsaFreeMemory(rightsPtr);
}