/// <summary> /// Initializes access point /// </summary> private void Init() { try { WlanUtils.ThrowOnWin32Error( wlanapi.WlanOpenHandle( wlanapi.WLAN_CLIENT_VERSION_VISTA, IntPtr.Zero, out _ServerVersion, ref _WlanHandle)); WLAN_NOTIFICATION_SOURCE notificationSource; WlanUtils.ThrowOnWin32Error( wlanapi.WlanRegisterNotification( _WlanHandle, WLAN_NOTIFICATION_SOURCE.ALL, true, _notificationCallback, IntPtr.Zero, IntPtr.Zero, out notificationSource)); WLAN_HOSTED_NETWORK_REASON failReason = InitSettings(); if (failReason != WLAN_HOSTED_NETWORK_REASON.SUCCESS) { throw new Exception("Init Error WlanHostedNetworkInitSettings: " + failReason.ToString()); } } catch { wlanapi.WlanCloseHandle(_WlanHandle, IntPtr.Zero); throw new Exception("Failed to create instance of hosted network\nMaybe your computer doesn't support hosted network"); } }
private void Init() { try { WlanUtils.Throw_On_Win32_Error(wlanapi.WlanOpenHandle(wlanapi.WLAN_CLIENT_VERSION_VISTA, IntPtr.Zero, out this._ServerVersion, ref this._WlanHandle)); WLAN_NOTIFICATION_SOURCE notifSource; WlanUtils.Throw_On_Win32_Error(wlanapi.WlanRegisterNotification(this._WlanHandle, WLAN_NOTIFICATION_SOURCE.All, true, this._notificationCallback, IntPtr.Zero, IntPtr.Zero, out notifSource)); WLAN_HOSTED_NETWORK_REASON failReason = this.InitSettings(); if (failReason != WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_success) { throw new Exception("Init Error WlanHostedNetworkInitSettings: " + failReason.ToString()); } //我加的 var netStat = QueryStatus(); _HostedNetworkState = netStat.HostedNetworkState; foreach (var i in netStat.PeerList) { WlanStation station = new WlanStation(i); _Stations[station.MacAddress] = station; } } catch { wlanapi.WlanCloseHandle(this._WlanHandle, IntPtr.Zero); throw; } }
public static extern uint WlanHostedNetworkSetSecondaryKey( IntPtr hClientHandle, uint dwKeyLength, [In, MarshalAs(UnmanagedType.LPStr)] string pucKeyData, bool bIsPassPhrase, bool bPersistent, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved);
private void Initialize() { uint result = wlanapi.WlanOpenHandle(wlanapi.WLAN_CLIENT_VERSION_VISTA, IntPtr.Zero, out uint ServerVersion, ref WlanHandle); if (result != 0) { throw new Exception("WlanOpenHandleEx"); } result = wlanapi.WlanRegisterVirtualStationNotification(WlanHandle, true, IntPtr.Zero); if (result != 0) { throw new Exception("WlanRegisterVirtualStationNotificationEx"); } result = wlanapi.WlanRegisterNotification( WlanHandle, WLAN_NOTIFICATION_SOURCE.WLAN_NOTIFICATION_SOURCE_ALL, true, NotificationCallback, IntPtr.Zero, IntPtr.Zero, out WLAN_NOTIFICATION_SOURCE notifSource); if (result != 0) { throw new Exception("WlanRegisterNotificationEx"); } WLAN_HOSTED_NETWORK_REASON failReason = InitSettings(); if (failReason != WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_success) { throw new Exception("WlanHostedNetworkInitSettingsEx: " + failReason.ToString()); } }
public static extern uint WlanHostedNetworkQuerySecondaryKey( IntPtr hClientHandle, [Out] out uint pKeyLength, [Out, MarshalAs(UnmanagedType.LPStr)] out string ppucKeyData, [Out] out bool pbIsPassPhrase, [Out] out bool pbPersistent, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved);
public static extern uint WlanHostedNetworkSetProperty( [In] IntPtr hClientHandle, [In] WLAN_HOSTED_NETWORK_OPCODE OpCode, [In] uint dwDataSize, [In] IntPtr pvData, [Out, Optional] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pvReserved);
public static extern uint WlanHostedNetworkQuerySecondaryKey( [In] IntPtr hClientHandle, [Out] out uint pdwKeyLength, [Out] out IntPtr ppucKeyData, [Out, MarshalAs(UnmanagedType.Bool)] out bool pbIsPassPhrase, [Out, MarshalAs(UnmanagedType.Bool)] out bool pbPersistent, [Out, Optional] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pvReserved);
public void set(WLAN_HOSTED_NETWORK_OPCODE code, T Value, out WLAN_HOSTED_NETWORK_REASON failReason) { dataPtr = Marshal.AllocHGlobal(Marshal.SizeOf(Value)); Marshal.StructureToPtr(Value, dataPtr, false); WiFiUtils.Throw_On_Win32_Error( wlanapi.WlanHostedNetworkSetProperty( handle, code, (uint)Marshal.SizeOf(Value), dataPtr, out failReason, IntPtr.Zero ) ); }
private void Init() { try { WiFiUtils.Throw_On_Win32_Error(wlanapi.WlanOpenHandle(wlanapi.WLAN_CLIENT_VERSION_VISTA, IntPtr.Zero, out this._ServerVersion, ref this._WlanHandle)); WLAN_NOTIFICATION_SOURCE notifSource; WiFiUtils.Throw_On_Win32_Error(wlanapi.WlanRegisterNotification(this._WlanHandle, WLAN_NOTIFICATION_SOURCE.All, true, this._notificationCallback, IntPtr.Zero, IntPtr.Zero, out notifSource)); WLAN_HOSTED_NETWORK_REASON failReason = this.InitSettings(); if (failReason != WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_success) { Trace.TraceInformation("WiFi Init Error WlanHostedNetworkInitSettings: " + failReason.ToString()); throw new Exception("Init Error WlanHostedNetworkInitSettings: " + failReason.ToString()); } } catch { wlanapi.WlanCloseHandle(this._WlanHandle, IntPtr.Zero); Trace.TraceInformation("WiFi Init Error"); throw; } }
public static extern uint WlanHostedNetworkRefreshSecuritySettings([In] IntPtr hClientHandle, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved);
public static extern uint WlanHostedNetworkForceStop([In] IntPtr hClientHandle, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved);
public static extern uint WlanHostedNetworkInitSettings(IntPtr hClientHandle, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved);
private string ShowHostedNetworkReason(WLAN_HOSTED_NETWORK_REASON Reason) { string Prefix = "The hosted network can not be started/stopped.\nReason: "; switch (Reason) { case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_success: return(string.Empty); //Prefix + "success"; case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_unspecified: return(Prefix + "unspecified"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_bad_parameters: return(Prefix + "bad parameters"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_service_shutting_down: return(Prefix + "service shutting down"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_insufficient_resources: return(Prefix + "insufficient resources"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_elevation_required: return(Prefix + "elevation required"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_read_only: return(Prefix + "read only"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_persistence_failed: return(Prefix + "persistence failed"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_crypt_error: return(Prefix + "crypt error"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_impersonation: return(Prefix + "impersonation"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_stop_before_start: return(Prefix + "stop before start"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_interface_available: return(Prefix + "interface available"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_interface_unavailable: return(Prefix + "interface unavailable"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_miniport_stopped: return(Prefix + "miniport stopped"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_miniport_started: return(Prefix + "miniport started"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_incompatible_connection_started: return(Prefix + "incompatible connection started"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_incompatible_connection_stopped: return(Prefix + "incompatible connection stopped"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_user_action: return(Prefix + "user action"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_client_abort: return(Prefix + "client abort"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_ap_start_failed: return(Prefix + "AP start failed"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_peer_arrived: return(Prefix + "peer arrived"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_peer_departed: return(Prefix + "peer departed"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_peer_timeout: return(Prefix + "peer timeout"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_gp_denied: return(Prefix + "GP denied"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_service_unavailable: return(Prefix + "service unavailable"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_device_change: return(Prefix + "device change"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_properties_change: return(Prefix + "properties change"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_virtual_station_blocking_use: return(Prefix + "virtual station blocking used"); case WLAN_HOSTED_NETWORK_REASON.wlan_hosted_network_reason_service_available_on_virtual_station: return(Prefix + "service available on virtual station"); default: return(Prefix + "unknown"); } }
public extern static UInt32 WlanHostedNetworkStopUsing( [In] IntPtr hClientHandle, [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pReserved );
public static extern uint WlanHostedNetworkStopUsing( [In] IntPtr hClientHandle, [Out, Optional] out WLAN_HOSTED_NETWORK_REASON pFailReason, IntPtr pvReserved);