System.Net.NetworkInformation.Win32NetworkInterface2.GetAdaptersInfo C# (CSharp) Method

GetAdaptersInfo() static private method

static private GetAdaptersInfo ( ) : System.Net.NetworkInformation.Win32_IP_ADAPTER_INFO[]
return System.Net.NetworkInformation.Win32_IP_ADAPTER_INFO[]
		unsafe static Win32_IP_ADAPTER_INFO [] GetAdaptersInfo ()
		{
			byte [] bytes = null;
			int len = 0;
			GetAdaptersInfo (bytes, ref len);
			bytes = new byte [len];
			int ret = GetAdaptersInfo (bytes, ref len);

			if (ret != 0)
				throw new NetworkInformationException (ret);

			List<Win32_IP_ADAPTER_INFO> l = new List<Win32_IP_ADAPTER_INFO> ();
			fixed (byte* ptr = bytes) {
				Win32_IP_ADAPTER_INFO info;
				for (IntPtr p = (IntPtr) ptr; p != IntPtr.Zero; p = info.Next) {
					info = new Win32_IP_ADAPTER_INFO ();
					Marshal.PtrToStructure (p, info);
					l.Add (info);
				}
			}
			return l.ToArray ();
		}

Same methods

Win32NetworkInterface2::GetAdaptersInfo ( byte info, int &size ) : int

Usage Example

        private unsafe static Win32_IP_ADAPTER_INFO[] GetAdaptersInfo()
        {
            byte[] array = null;
            int    num   = 0;

            Win32NetworkInterface2.GetAdaptersInfo(array, ref num);
            array = new byte[num];
            int adaptersInfo = Win32NetworkInterface2.GetAdaptersInfo(array, ref num);

            if (adaptersInfo != 0)
            {
                throw new NetworkInformationException(adaptersInfo);
            }
            List <Win32_IP_ADAPTER_INFO> list = new List <Win32_IP_ADAPTER_INFO>();

            fixed(byte *value = ref (array != null && array.Length != 0)?ref array[0] : ref *null)
            {
                IntPtr intPtr = (IntPtr)((void *)value);

                while (intPtr != IntPtr.Zero)
                {
                    Win32_IP_ADAPTER_INFO win32_IP_ADAPTER_INFO = new Win32_IP_ADAPTER_INFO();
                    Marshal.PtrToStructure(intPtr, win32_IP_ADAPTER_INFO);
                    list.Add(win32_IP_ADAPTER_INFO);
                    intPtr = win32_IP_ADAPTER_INFO.Next;
                }
            }

            return(list.ToArray());
        }
All Usage Examples Of System.Net.NetworkInformation.Win32NetworkInterface2::GetAdaptersInfo