82 : base(asyncObject, userState, callback)
83 {
86 if (size == 0)
87 {
90 return;
91 }
92 _dataChunks =
new global::Interop.HttpApi.HTTP_DATA_CHUNK[(!chunked) ? 1 : 3];
94 {
96 }
99 int offset2 = 0;
100 byte[] array2 = null;
101 if (chunked)
102 {
104 _dataChunks[0] =
default(global::Interop.HttpApi.HTTP_DATA_CHUNK);
105 _dataChunks[0].DataChunkType = global::Interop.HttpApi.HTTP_DATA_CHUNK_TYPE.HttpDataChunkFromMemory;
106 _dataChunks[0].BufferLength = (uint)(array2.Length - offset2);
108 _dataChunks[1] =
default(global::Interop.HttpApi.HTTP_DATA_CHUNK);
109 _dataChunks[1].DataChunkType = global::Interop.HttpApi.HTTP_DATA_CHUNK_TYPE.HttpDataChunkFromMemory;
112 _dataChunks[2] =
default(global::Interop.HttpApi.HTTP_DATA_CHUNK);
113 _dataChunks[2].DataChunkType = global::Interop.HttpApi.HTTP_DATA_CHUNK_TYPE.HttpDataChunkFromMemory;
116 }
117 else
118 {
119 _dataChunks[0] =
default(global::Interop.HttpApi.HTTP_DATA_CHUNK);
120 _dataChunks[0].DataChunkType = global::Interop.HttpApi.HTTP_DATA_CHUNK_TYPE.HttpDataChunkFromMemory;
123 }
125 if (chunked)
126 {
130 }
131 else
132 {
134 }
135 }
static unsafe readonly IOCompletionCallback s_IOCallback
unsafe NativeOverlapped * _pOverlapped
static readonly byte[] s_CRLFArray
readonly global::Interop.HttpApi.HTTP_DATA_CHUNK[] _dataChunks
static byte[] GetChunkHeader(int size, out int offset)
readonly ThreadPoolBoundHandle _boundHandle
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
static unsafe IntPtr UnsafeAddrOfPinnedArrayElement(Array arr, int index)
unsafe NativeOverlapped * AllocateNativeOverlapped(IOCompletionCallback callback, object? state, object? pinData)