@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The UnenableRouter function decrements the reference count that tracks the number of requests to enable IPv4 forwarding. When this reference count reaches zero, UnenableRouter turns off IPv4 forwarding on the local computer. !!!!C# Signature: [DllImport("iphlpapi.dll", SetLastError=true)] static extern int UnenableRouter(ref System.Threading.NativeOverlapped pOverlapped, IntPtr lpdwEnableCount); !!!!VB.NET Signature: <DllImport("iphlpapi.dll", CharSet:=CharSet.Ansi)> Public Shared Function UnenableRouter(pOverlapped As IntPtr, ByRef lpdwEnableCount As Long) As Integer End Function !!!!User-Defined Types: None. !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: VB.NET Example Private Const NO_ERROR As Integer = 0 <StructLayout(LayoutKind.Explicit, Size:=20)> Public Structure OVERLAPPED <FieldOffset(0)> Public Internal As UInt32 <FieldOffset(4)> Public InternalHigh As UInt32 <FieldOffset(8)> Public Offset As UInt32 <FieldOffset(12)> Public OffsetHigh As UInt32 <FieldOffset(8)> Public Pointer As IntPtr <FieldOffset(16)> Public hEvent As IntPtr End Structure <DllImport("iphlpapi.dll", CharSet:=CharSet.Ansi)> Public Shared Function UnenableRouter(pOverlapped As IntPtr, ByRef lpdwEnableCount As Long) As Integer End Function <DllImport("kernel32.dll")> Public Shared Function CloseHandle(ByVal hwn As IntPtr) As Long End Function Private pOverlapped As OVERLAPPED <- Important! Created from EnableRouter() call. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim count As Long Dim pOverlappedPtr As IntPtr Dim RetVal As Integer Dim size As Integer Try size = Marshal.SizeOf(pOverlapped) If pOverlapped.hEvent = IntPtr.Zero Then Exit Sub ' We don't have the handle. pOverlappedPtr = Marshal.AllocHGlobal(size) Marshal.StructureToPtr(pOverlapped, pOverlappedPtr, True) RetVal = UnenableRouter(pOverlappedPtr, count) If RetVal = NO_ERROR Then Console.WriteLine("Success!") Else Dim errorMessage As String = New Win32Exception(RetVal).Message Console.WriteLine(errorMessage) End If If pOverlappedPtr <> IntPtr.Zero Then CloseHandle(pOverlapped.hEvent) Catch ex As Exception Console.WriteLine(ex.ToString) Finally Marshal.FreeHGlobal(pOverlappedPtr) End Try End Sub Documentation: UnenableRouter@msdn on MSDN
Edit iphlpapi.Unenable...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.