Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetPerAdapterInfo()

void System.Net.NetworkInformation.SystemIPv4InterfaceProperties.GetPerAdapterInfo ( uint index)
inlineprivate

Definition at line 45 of file SystemIPv4InterfaceProperties.cs.

46 {
47 if (index == 0)
48 {
49 return;
50 }
51 uint pOutBufLen = 0u;
52 uint perAdapterInfo = global::Interop.IpHlpApi.GetPerAdapterInfo(index, IntPtr.Zero, ref pOutBufLen);
53 while (true)
54 {
55 switch (perAdapterInfo)
56 {
57 case 111u:
58 {
59 IntPtr intPtr = Marshal.AllocHGlobal((int)pOutBufLen);
60 try
61 {
62 perAdapterInfo = global::Interop.IpHlpApi.GetPerAdapterInfo(index, intPtr, ref pOutBufLen);
63 if (perAdapterInfo == 0)
64 {
65 global::Interop.IpHlpApi.IpPerAdapterInfo ipPerAdapterInfo = Marshal.PtrToStructure<global::Interop.IpHlpApi.IpPerAdapterInfo>(intPtr);
66 _autoConfigEnabled = ipPerAdapterInfo.autoconfigEnabled;
67 _autoConfigActive = ipPerAdapterInfo.autoconfigActive;
68 }
69 }
70 finally
71 {
72 Marshal.FreeHGlobal(intPtr);
73 }
74 break;
75 }
76 default:
77 throw new NetworkInformationException((int)perAdapterInfo);
78 case 0u:
79 return;
80 }
81 }
82 }
static void FreeHGlobal(IntPtr hglobal)
Definition Marshal.cs:1680
static ? object PtrToStructure(IntPtr ptr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type structureType)
Definition Marshal.cs:1164
static IntPtr AllocHGlobal(int cb)
Definition Marshal.cs:625

References System.Net.NetworkInformation.SystemIPv4InterfaceProperties._autoConfigActive, System.Net.NetworkInformation.SystemIPv4InterfaceProperties._autoConfigEnabled, System.Runtime.InteropServices.Marshal.AllocHGlobal(), System.Runtime.InteropServices.Marshal.FreeHGlobal(), System.index, System.Runtime.InteropServices.Marshal.PtrToStructure(), and System.IntPtr.Zero.

Referenced by System.Net.NetworkInformation.SystemIPv4InterfaceProperties.SystemIPv4InterfaceProperties().