コード例 #1
0
            internal unsafe bool ConnectEx(SafeSocketHandle socketHandle, IntPtr socketAddress, int socketAddressSize, IntPtr buffer, int dataLength, out int bytesSent, NativeOverlapped *overlapped)
            {
                IntPtr __socketHandle_gen_native = default;

                bytesSent = default;
                bool __retVal;
                int  __retVal_gen_native = default;
                //
                // Setup
                //
                bool socketHandle__addRefd = false;

                try
                {
                    //
                    // Marshal
                    //
                    socketHandle.DangerousAddRef(ref socketHandle__addRefd);
                    __socketHandle_gen_native = socketHandle.DangerousGetHandle();
                    fixed(int *__bytesSent_gen_native = &bytesSent)
                    {
                        __retVal_gen_native = ((delegate * unmanaged <IntPtr, IntPtr, int, IntPtr, int, int *, NativeOverlapped *, int>)_target)(__socketHandle_gen_native, socketAddress, socketAddressSize, buffer, dataLength, __bytesSent_gen_native, overlapped);
                    }
                    Marshal.SetLastPInvokeError(Marshal.GetLastSystemError());
                    //
                    // Unmarshal
                    //
                    __retVal = __retVal_gen_native != 0;
                }
                finally
                {
                    //
                    // Cleanup
                    //
                    if (socketHandle__addRefd)
                    {
                        socketHandle.DangerousRelease();
                    }
                }

                return(__retVal);
            }
コード例 #2
0
            internal unsafe bool TransmitPackets(SafeSocketHandle socketHandle, IntPtr packetArray, int elementCount, int sendSize, NativeOverlapped *overlapped, TransmitFileOptions flags)
            {
                IntPtr __socketHandle_gen_native;
                bool   __retVal;
                int    __retVal_gen_native;
                //
                // Setup
                //
                bool socketHandle__addRefd = false;

                try
                {
                    //
                    // Marshal
                    //
                    socketHandle.DangerousAddRef(ref socketHandle__addRefd);
                    __socketHandle_gen_native = socketHandle.DangerousGetHandle();
                    __retVal_gen_native       = ((delegate * unmanaged <IntPtr, IntPtr, int, int, NativeOverlapped *, TransmitFileOptions, int>)_target)(__socketHandle_gen_native, packetArray, elementCount, sendSize, overlapped, flags);
                    Marshal.SetLastPInvokeError(Marshal.GetLastSystemError());
                    //
                    // Unmarshal
                    //
                    __retVal = __retVal_gen_native != 0;
                }
                finally
                {
                    //
                    // Cleanup
                    //
                    if (socketHandle__addRefd)
                    {
                        socketHandle.DangerousRelease();
                    }
                }

                return(__retVal);
            }
コード例 #3
0
            internal unsafe SocketError WSARecvMsg(SafeSocketHandle socketHandle, IntPtr msg, out int bytesTransferred, NativeOverlapped *overlapped, IntPtr completionRoutine)
            {
                IntPtr __socketHandle_gen_native = default;

                bytesTransferred = default;
                SocketError __retVal;
                //
                // Setup
                //
                bool socketHandle__addRefd = false;

                try
                {
                    //
                    // Marshal
                    //
                    socketHandle.DangerousAddRef(ref socketHandle__addRefd);
                    __socketHandle_gen_native = socketHandle.DangerousGetHandle();
                    fixed(int *__bytesTransferred_gen_native = &bytesTransferred)
                    {
                        __retVal = ((delegate * unmanaged <IntPtr, IntPtr, int *, NativeOverlapped *, IntPtr, SocketError>)_target)(__socketHandle_gen_native, msg, __bytesTransferred_gen_native, overlapped, completionRoutine);
                    }
                    Marshal.SetLastPInvokeError(Marshal.GetLastSystemError());
                }
                finally
                {
                    //
                    // Cleanup
                    //
                    if (socketHandle__addRefd)
                    {
                        socketHandle.DangerousRelease();
                    }
                }

                return(__retVal);
            }
コード例 #4
0
            internal unsafe bool DisconnectEx(SafeSocketHandle socketHandle, NativeOverlapped *overlapped, int flags, int reserved)
            {
                IntPtr __socketHandle_gen_native;
                bool   __retVal;
                int    __retVal_gen_native;
                //
                // Setup
                //
                bool socketHandle__addRefd = false;

                try
                {
                    //
                    // Marshal
                    //
                    socketHandle.DangerousAddRef(ref socketHandle__addRefd);
                    __socketHandle_gen_native = socketHandle.DangerousGetHandle();
                    __retVal_gen_native       = ((delegate * unmanaged <IntPtr, NativeOverlapped *, int, int, int>)_target)(__socketHandle_gen_native, overlapped, flags, reserved);
                    Marshal.SetLastPInvokeError(Marshal.GetLastSystemError());
                    //
                    // Unmarshal
                    //
                    __retVal = __retVal_gen_native != 0;
                }
                finally
                {
                    //
                    // Cleanup
                    //
                    if (socketHandle__addRefd)
                    {
                        socketHandle.DangerousRelease();
                    }
                }

                return(__retVal);
            }
コード例 #5
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static bool Poll_internal (SafeSocketHandle safeHandle, SelectMode mode, int timeout, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				return Poll_internal (safeHandle.DangerousGetHandle (), mode, timeout, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #6
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static SocketAddress RemoteEndPoint_internal (SafeSocketHandle safeHandle, int family, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				return RemoteEndPoint_internal (safeHandle.DangerousGetHandle (), family, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #7
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static void Blocking_internal (SafeSocketHandle safeHandle, bool block, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				Blocking_internal (safeHandle.DangerousGetHandle (), block, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #8
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static int Available_internal (SafeSocketHandle safeHandle, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				return Available_internal (safeHandle.DangerousGetHandle (), out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #9
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static void Shutdown_internal (SafeSocketHandle safeHandle, SocketShutdown how, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				Shutdown_internal (safeHandle.DangerousGetHandle (), how, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #10
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static int IOControl_internal (SafeSocketHandle safeHandle, int ioctl_code, byte [] input, byte [] output, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				return IOControl_internal (safeHandle.DangerousGetHandle (), ioctl_code, input, output, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #11
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static void SetSocketOption_internal (SafeSocketHandle safeHandle, SocketOptionLevel level, SocketOptionName name, object obj_val, byte [] byte_val, int int_val, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				SetSocketOption_internal (safeHandle.DangerousGetHandle (), level, name, obj_val, byte_val, int_val, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #12
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static int Send_internal (SafeSocketHandle safeHandle, WSABUF[] bufarray, SocketFlags flags, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				return Send_internal (safeHandle.DangerousGetHandle (), bufarray, flags, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #13
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static void Disconnect_internal (SafeSocketHandle safeHandle, bool reuse, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				Disconnect_internal (safeHandle.DangerousGetHandle (), reuse, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #14
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		static void Listen_internal (SafeSocketHandle safeHandle, int backlog, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				Listen_internal (safeHandle.DangerousGetHandle (), backlog, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #15
0
ファイル: Socket.cs プロジェクト: Profit0004/mono
		private static void Bind_internal (SafeSocketHandle safeHandle, SocketAddress sa, out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				Bind_internal (safeHandle.DangerousGetHandle (), sa, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}
コード例 #16
0
ファイル: Socket.cs プロジェクト: jamescourtney/mono
		private static void GetSocketOption_arr_internal (SafeSocketHandle safeHandle,
			SocketOptionLevel level, SocketOptionName name, ref byte[] byte_val,
			out int error)
		{
			bool release = false;
			try {
				safeHandle.DangerousAddRef (ref release);
				GetSocketOption_arr_internal (safeHandle.DangerousGetHandle (), level, name, ref byte_val, out error);
			} finally {
				if (release)
					safeHandle.DangerousRelease ();
			}
		}