/// <summary> /// Deletes a <paramref name="profile" /> on a given <paramref name="wirelessInterface" /> /// </summary> /// <param name="wirelessInterface">The wireless interface to delete the profile on</param> /// <param name="profile">The profile to delete</param> public void DeleteProfile(WirelessInterface wirelessInterface, Profile profile) { Guid interfaceGuid = wirelessInterface.InterfaceGuid; uint result = NativeWireless.WlanDeleteProfile(this.GetHandle(), ref interfaceGuid, profile.ProfileName, IntPtr.Zero); result.ThrowIfNotSuccess(); }
/// <summary> /// Returns all the profiles associated with this Wireless Interface /// </summary> /// <param name="wirelessInterface">The wirelessInterface to get the profiles from</param> /// <returns></returns> public List<Profile> GetProfilesForWirelessInterface(WirelessInterface wirelessInterface) { IntPtr handle; // The interfaceGuid is passed in as a pointer which is why we need to extract it into a variable. // the function takes a const Guid* which cannot be exposed in C# Guid interfaceGuid = wirelessInterface.InterfaceGuid; uint result = NativeWireless.WlanGetProfileList(this.GetHandle(), ref interfaceGuid, IntPtr.Zero, out handle); result.ThrowIfNotSuccess(); var wlanProfileInfoList = new WLAN_PROFILE_INFO_LIST(handle); NativeWireless.WlanFreeMemory(handle); List<Profile> profilesForWirelessInterface = wlanProfileInfoList.ProfileInfo.Select((wlanProfileInfo, index) => new Profile((uint) index, wlanProfileInfo.strProfileName)).ToList(); return profilesForWirelessInterface; }
/// <summary> /// Move the <paramref name="profile" /> to a given <paramref name="position" /> for the given <paramref name="wirelessInterface" /> /// </summary> /// <param name="wirelessInterface">The wireless interface</param> /// <param name="profile">The profile</param> /// <param name="position">The position requested</param> public void SetProfilePosition(WirelessInterface wirelessInterface, Profile profile, uint position) { Guid interfaceGuid = wirelessInterface.InterfaceGuid; uint result = NativeWireless.WlanSetProfilePosition(this.GetHandle(), interfaceGuid, profile.ProfileName, position, IntPtr.Zero); result.ThrowIfNotSuccess(); }