private static ApiSetNamespace FromCurrentProcess() { if (NtObjectUtils.SupportedVersion < SupportedVersion.Windows10) { return(new ApiSetNamespace(ApiSetFlags.None, new List <ApiSetEntry>())); } IntPtr base_ptr = NtProcess.Current.GetPeb().GetApiSetMap(); var header = (API_SET_NAMESPACE_WIN10)Marshal.PtrToStructure(base_ptr, typeof(API_SET_NAMESPACE_WIN10)); if (header.Version < 5) { return(new ApiSetNamespace(ApiSetFlags.None, new List <ApiSetEntry>())); } var map = new SafeStructureInOutBuffer <API_SET_NAMESPACE_WIN10>(base_ptr, header.Size, false); var entries = map.ReadArray <API_SET_NAMESPACE_ENTRY_WIN10>(header.NamespaceOffset, header.Count).Select(e => CreateEntry(e, map)); return(new ApiSetNamespace(header.Flags, entries.ToList())); }