internal static NtStatus LsaRetrievePrivateData(SafeLsaPolicyHandle policyHandle, string keyName, out byte[] privateData) { var unicodeKeyName = new UnicodeString(keyName); IntPtr privateDataPointer; NtStatus result = LsaRetrievePrivateData(policyHandle, ref unicodeKeyName, out privateDataPointer); try { privateData = privateDataPointer != IntPtr.Zero ? Marshal.PtrToStructure <LsaBuffer>(privateDataPointer).GetBytes() : null; } finally { LsaFreeMemory(privateDataPointer); } return(result); }
internal static NtStatus LsaSetInformationPolicy(SafeLsaPolicyHandle policyHandle, LsaDnsDomainInformationNative buffer) { return(LsaSetInformationPolicy(policyHandle, LsaPolicyInformationClass.DnsDomainInformation, ref buffer)); }
private static extern NtStatus LsaSetInformationPolicy(SafeLsaPolicyHandle policyHandle, LsaPolicyInformationClass informationClass, [In] ref LsaDnsDomainInformationNative buffer);
private static extern NtStatus LsaSetInformationPolicy(SafeLsaPolicyHandle policyHandle, LsaPolicyInformationClass informationClass, IntPtr buffer);
internal static extern NtStatus LsaQueryInformationPolicy(SafeLsaPolicyHandle policyHandle, LsaPolicyInformationClass informationClass, out IntPtr buffer);
private static extern NtStatus LsaRetrievePrivateData(SafeLsaPolicyHandle policyHandle, [In] ref UnicodeString keyName, out IntPtr privateData);
internal static NtStatus LsaOpenPolicy(string systemName, LsaPolicyAccessMask desiredAccess, out SafeLsaPolicyHandle policyHandle) { var unicodeName = new UnicodeString(systemName); var attributes = new LsaObjectAttributes(); return(LsaOpenPolicy(ref unicodeName, ref attributes, desiredAccess, out policyHandle)); }
private static extern NtStatus LsaOpenPolicy([In] ref UnicodeString systemName, [In] ref LsaObjectAttributes objectAttributes, LsaPolicyAccessMask desiredAccess, out SafeLsaPolicyHandle policyHandle);