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

◆ TransmitFileHelper()

static unsafe bool System.Net.Sockets.SocketPal.TransmitFileHelper ( SafeHandle socket,
SafeHandle fileHandle,
NativeOverlapped * overlapped,
IntPtr pinnedPreBuffer,
int preBufferLength,
IntPtr pinnedPostBuffer,
int postBufferLength,
TransmitFileOptions flags )
inlinestaticprivate

Definition at line 809 of file SocketPal.cs.

810 {
811 bool flag = false;
812 global::Interop.Mswsock.TransmitFileBuffers transmitFileBuffers = default(global::Interop.Mswsock.TransmitFileBuffers);
813 if (preBufferLength > 0)
814 {
815 flag = true;
816 transmitFileBuffers.Head = pinnedPreBuffer;
817 transmitFileBuffers.HeadLength = preBufferLength;
818 }
819 if (postBufferLength > 0)
820 {
821 flag = true;
822 transmitFileBuffers.Tail = pinnedPostBuffer;
823 transmitFileBuffers.TailLength = postBufferLength;
824 }
825 bool success = false;
827 try
828 {
829 if (fileHandle != null)
830 {
831 fileHandle.DangerousAddRef(ref success);
832 fileHandle2 = fileHandle.DangerousGetHandle();
833 }
834 return global::Interop.Mswsock.TransmitFile(socket, fileHandle2, 0, 0, overlapped, flag ? (&transmitFileBuffers) : null, flags);
835 }
836 finally
837 {
838 if (success)
839 {
840 fileHandle.DangerousRelease();
841 }
842 }
843 }
void DangerousAddRef(ref bool success)
Definition SafeHandle.cs:76

References System.Runtime.InteropServices.SafeHandle.DangerousAddRef(), System.Runtime.InteropServices.SafeHandle.DangerousGetHandle(), System.Runtime.InteropServices.SafeHandle.DangerousRelease(), and System.IntPtr.Zero.

Referenced by System.Net.Sockets.SocketPal.SendFile().