public static WlanConnectionNotificationData? ParseWlanConnectionNotification(ref WlanNotificationData notifyData) { int expectedSize = Marshal.SizeOf(typeof(WlanConnectionNotificationData)); if (notifyData.dataSize < expectedSize) return null; WlanConnectionNotificationData connNotifyData = (WlanConnectionNotificationData)Marshal.PtrToStructure(notifyData.dataPtr, typeof(WlanConnectionNotificationData)); if (connNotifyData.wlanReasonCode == WlanReasonCode.Success) { long profileXmlPtrValue = notifyData.dataPtr.ToInt64() + Marshal.OffsetOf(typeof(WlanConnectionNotificationData), "profileXml").ToInt64(); connNotifyData.profileXml = Marshal.PtrToStringUni(new IntPtr(profileXmlPtrValue)); } return connNotifyData; }
private void inte_WlanNotification(WlanNotificationData notifyData) { if (notifyData.notificationSource == WlanNotificationSource.ACM && (NotifCodeACM)notifyData.NotificationCode == NotifCodeACM.Disconnected) OnConnectionStatusChanged(WifiStatus.Disconnected); else if (notifyData.notificationSource == WlanNotificationSource.MSM && (NotifCodeMSM)notifyData.NotificationCode == NotifCodeMSM.Connected) OnConnectionStatusChanged(WifiStatus.Connected); }