/// <summary> /// Add a global atom name /// </summary> /// <param name="name">The name to add</param> /// <param name="flags">Flags for the add.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>A reference to the atom</returns> public static NtResult <NtAtom> Add(string name, AddAtomFlags flags, bool throw_on_error) { if (flags == AddAtomFlags.None) { return(NtSystemCalls.NtAddAtom(name + "\0", (name.Length + 1) * 2, out ushort atom).CreateResult(throw_on_error, () => new NtAtom(atom, true))); } else { return(NtSystemCalls.NtAddAtomEx(name + "\0", (name.Length + 1) * 2, out ushort atom, flags).CreateResult(throw_on_error, () => new NtAtom(atom, true))); } }
/// <summary> /// Add a global atom name /// </summary> /// <param name="name">The name to add</param> /// <param name="flags">Flags for the add.</param> /// <returns>A reference to the atom</returns> public static NtAtom Add(string name, AddAtomFlags flags) { return(Add(name, flags, true).Result); }
public static extern NtStatus NtAddAtomEx(string String, int StringLength, out ushort Atom, AddAtomFlags Flags);