File: Overlapped.xml

package info (click to toggle)
mono 6.14.1%2Bds2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,282,732 kB
  • sloc: cs: 11,182,461; xml: 2,850,281; ansic: 699,123; cpp: 122,919; perl: 58,604; javascript: 30,841; asm: 21,845; makefile: 19,602; sh: 10,973; python: 4,772; pascal: 925; sql: 859; sed: 16; php: 1
file content (504 lines) | stat: -rw-r--r-- 33,734 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
<?xml version="1.0" encoding="utf-8"?>
<Type Name="Overlapped" FullName="System.Threading.Overlapped">
  <TypeSignature Maintainer="auto" Language="C#" Value="public class Overlapped" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Overlapped extends System.Object" />
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="Overload:System.Threading.Overlapped.Pack" /> and <see cref="Overload:System.Threading.Overlapped.UnsafePack" /> methods transfer information from an <see cref="T:System.Threading.Overlapped" /> object to a <see cref="T:System.Threading.NativeOverlapped" /> structure that can be passed to Win32 API functions for asynchronous file I/O. The <see cref="M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*)" /> method transfers information from a <see cref="T:System.Threading.NativeOverlapped" /> structure to an instance of the <see cref="T:System.Threading.Overlapped" /> class. </para>
      <para>Changes to the properties of an <see cref="T:System.Threading.Overlapped" /> object affect its associated <see cref="T:System.Threading.NativeOverlapped" /> structure, and vice versa. </para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Provides a managed representation of a Win32 <unmanagedCodeEntityReference>OVERLAPPED</unmanagedCodeEntityReference> structure, including methods to transfer information from an <see cref="T:System.Threading.Overlapped" /> instance to a <see cref="T:System.Threading.NativeOverlapped" /> structure.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Overlapped ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new, empty instance of the <see cref="T:System.Threading.Overlapped" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Overlapped (int offsetLo, int offsetHi, int hEvent, IAsyncResult ar);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 offsetLo, int32 offsetHi, int32 hEvent, class System.IAsyncResult ar) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete("Not 64bit compatible.  Please use the constructor that takes IntPtr for the event handle")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue />
      <Parameters>
        <Parameter Name="offsetLo" Type="System.Int32" />
        <Parameter Name="offsetHi" Type="System.Int32" />
        <Parameter Name="hEvent" Type="System.Int32" />
        <Parameter Name="ar" Type="System.IAsyncResult" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="P:System.Threading.WaitHandle.Handle" /> property to get the handle of any managed synchronization event that derives from the <see cref="T:System.Threading.WaitHandle" /> class.</para>
          <para>Your implementation of <see cref="T:System.IAsyncResult" /> provides status information on the I/O operation. Pass it to the constructor in the <paramref name="ar" /> parameter, and retrieve it later with the <see cref="P:System.Threading.Overlapped.AsyncResult" /> property. If a callback method is specified for the <see cref="Overload:System.Threading.Overlapped.Pack" /> or <see cref="Overload:System.Threading.Overlapped.UnsafePack" /> method, the callback can retrieve your <see cref="T:System.IAsyncResult" /> by unpacking the <see cref="T:System.Threading.NativeOverlapped" /> structure it receives.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Threading.Overlapped" /> class with the specified file position, the 32-bit integer handle to an event that is signaled when the I/O operation is complete, and an interface through which to return the results of the operation.</para>
        </summary>
        <param name="offsetLo">
          <attribution license="cc4" from="Microsoft" modified="false" />The low word of the file position at which to start the transfer. </param>
        <param name="offsetHi">
          <attribution license="cc4" from="Microsoft" modified="false" />The high word of the file position at which to start the transfer. </param>
        <param name="hEvent">
          <attribution license="cc4" from="Microsoft" modified="false" />The handle to an event that is signaled when the I/O operation is complete. </param>
        <param name="ar">
          <attribution license="cc4" from="Microsoft" modified="false" />An object that implements the <see cref="T:System.IAsyncResult" /> interface and provides status information on the I/O operation. </param>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Overlapped (int offsetLo, int offsetHi, IntPtr hEvent, IAsyncResult ar);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 offsetLo, int32 offsetHi, native int hEvent, class System.IAsyncResult ar) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="offsetLo" Type="System.Int32" />
        <Parameter Name="offsetHi" Type="System.Int32" />
        <Parameter Name="hEvent" Type="System.IntPtr" />
        <Parameter Name="ar" Type="System.IAsyncResult" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To get the handle of a managed synchronization object that derives from the <see cref="T:System.Threading.WaitHandle" /> class, use the <see cref="P:System.Threading.WaitHandle.SafeWaitHandle" /> property to get a <see cref="T:Microsoft.Win32.SafeHandles.SafeWaitHandle" /> object, and then call the <see cref="M:System.Runtime.InteropServices.SafeHandle.DangerousGetHandle" /> method.</para>
          <para>Your implementation of <see cref="T:System.IAsyncResult" /> provides status information on the I/O operation. Pass it to the constructor in the <paramref name="ar" /> parameter, and retrieve it later with the <see cref="P:System.Threading.Overlapped.AsyncResult" /> property. If a callback method is specified for the <see cref="Overload:System.Threading.Overlapped.Pack" /> or <see cref="Overload:System.Threading.Overlapped.UnsafePack" /> method, the callback can retrieve your <see cref="T:System.IAsyncResult" /> by unpacking the <see cref="T:System.Threading.NativeOverlapped" /> structure it receives.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Threading.Overlapped" /> class with the specified file position, the handle to an event that is signaled when the I/O operation is complete, and an interface through which to return the results of the operation.</para>
        </summary>
        <param name="offsetLo">
          <attribution license="cc4" from="Microsoft" modified="false" />The low word of the file position at which to start the transfer. </param>
        <param name="offsetHi">
          <attribution license="cc4" from="Microsoft" modified="false" />The high word of the file position at which to start the transfer. </param>
        <param name="hEvent">
          <attribution license="cc4" from="Microsoft" modified="false" />The handle to an event that is signaled when the I/O operation is complete. </param>
        <param name="ar">
          <attribution license="cc4" from="Microsoft" modified="false" />An object that implements the <see cref="T:System.IAsyncResult" /> interface and provides status information on the I/O operation. </param>
      </Docs>
    </Member>
    <Member MemberName="AsyncResult">
      <MemberSignature Language="C#" Value="public IAsyncResult AsyncResult { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class System.IAsyncResult AsyncResult" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.IAsyncResult</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the object that provides status information on the I/O operation.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="EventHandle">
      <MemberSignature Language="C#" Value="public int EventHandle { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 EventHandle" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete("Not 64bit compatible.  Use EventHandleIntPtr instead.")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This property cannot be used on 64-bit platforms. Use the <see cref="P:System.Threading.Overlapped.EventHandleIntPtr" /> property instead.</para>
          <para>Use the <see cref="P:System.Threading.WaitHandle.Handle" /> property to get the handle of any managed synchronization event that derives from the <see cref="T:System.Threading.WaitHandle" /> class.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the 32-bit integer handle to a synchronization event that is signaled when the I/O operation is complete.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="EventHandleIntPtr">
      <MemberSignature Language="C#" Value="public IntPtr EventHandleIntPtr { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance native int EventHandleIntPtr" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To get the handle of a managed synchronization object that derives from the <see cref="T:System.Threading.WaitHandle" /> class, use the <see cref="P:System.Threading.WaitHandle.SafeWaitHandle" /> property to get a <see cref="T:Microsoft.Win32.SafeHandles.SafeWaitHandle" /> object, and then call the <see cref="M:System.Runtime.InteropServices.SafeHandle.DangerousGetHandle" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the handle to the synchronization event that is signaled when the I/O operation is complete.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Free">
      <MemberSignature Language="C#" Value="public static void Free (System.Threading.NativeOverlapped* nativeOverlappedPtr);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Free(valuetype System.Threading.NativeOverlapped* nativeOverlappedPtr) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="nativeOverlappedPtr" Type="System.Threading.NativeOverlapped*" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You must call the <see cref="M:System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*)" /> method exactly once on every <see cref="T:System.Threading.NativeOverlapped" /> pointer you receive from the <see cref="Overload:System.Threading.Overlapped.Pack" /> method. If you don't call the <see cref="M:System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*)" /> method, you will leak memory. If you call the <see cref="M:System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*)" /> method more than once, memory will be corrupted.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Frees the unmanaged memory associated with a native overlapped structure allocated by the <see cref="Overload:System.Threading.Overlapped.Pack" /> method.</para>
        </summary>
        <param name="nativeOverlappedPtr">
          <attribution license="cc4" from="Microsoft" modified="false" />A pointer to the <see cref="T:System.Threading.NativeOverlapped" /> structure to be freed.</param>
      </Docs>
    </Member>
    <Member MemberName="OffsetHigh">
      <MemberSignature Language="C#" Value="public int OffsetHigh { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 OffsetHigh" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the high-order word of the file position at which to start the transfer. The file position is a byte offset from the start of the file.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="OffsetLow">
      <MemberSignature Language="C#" Value="public int OffsetLow { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 OffsetLow" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the low-order word of the file position at which to start the transfer. The file position is a byte offset from the start of the file.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Pack">
      <MemberSignature Language="C#" Value="public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Threading.NativeOverlapped* Pack(class System.Threading.IOCompletionCallback iocb) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete("Use Pack(iocb, userData) instead")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Threading.NativeOverlapped*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iocb" Type="System.Threading.IOCompletionCallback" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. The <see cref="T:System.Threading.NativeOverlapped" /> structure is fixed in physical memory until <see cref="M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*)" /> is called. </para>
          <block subset="none" type="note">
            <para>The caller is responsible for pinning the buffer. If the application domain is unloaded, however, the handle to the pinned buffer is destroyed and the buffer is released, leaving the I/O operation to write to the freed address. For this reason, it is better to use the <see cref="M:System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback,System.Object)" /> method overload, in which the runtime pins the buffer.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Packs the current instance into a <see cref="T:System.Threading.NativeOverlapped" /> structure, specifying the delegate to be invoked when the asynchronous I/O operation is complete.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An unmanaged pointer to a <see cref="T:System.Threading.NativeOverlapped" /> structure. </para>
        </returns>
        <param name="iocb">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.IOCompletionCallback" /> delegate that represents the callback method invoked when the asynchronous I/O operation completes.</param>
      </Docs>
    </Member>
    <Member MemberName="Pack">
      <MemberSignature Language="C#" Value="public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb, object userData);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Threading.NativeOverlapped* Pack(class System.Threading.IOCompletionCallback iocb, object userData) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Threading.NativeOverlapped*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iocb" Type="System.Threading.IOCompletionCallback" />
        <Parameter Name="userData" Type="System.Object" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. The <see cref="T:System.Threading.NativeOverlapped" /> structure is fixed in physical memory until <see cref="M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*)" /> is called.</para>
          <para>The buffer or buffers specified in <paramref name="userData" /> must be the same as those passed to the unmanaged operating system function that performs the asynchronous I/O. </para>
          <block subset="none" type="note">
            <para>The runtime pins the buffer or buffers specified in <paramref name="userData" /> for the duration of the I/O operation. If the application domain is unloaded, the runtime keeps the memory pinned until the I/O operation completes.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Packs the current instance into a <see cref="T:System.Threading.NativeOverlapped" /> structure, specifying a delegate that is invoked when the asynchronous I/O operation is complete and a managed object that serves as a buffer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An unmanaged pointer to a <see cref="T:System.Threading.NativeOverlapped" /> structure. </para>
        </returns>
        <param name="iocb">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.IOCompletionCallback" /> delegate that represents the callback method invoked when the asynchronous I/O operation completes.</param>
        <param name="userData">
          <attribution license="cc4" from="Microsoft" modified="false" />An object or array of objects representing the input or output buffer for the operation. Each object represents a buffer, for example an array of bytes.</param>
      </Docs>
    </Member>
    <Member MemberName="Unpack">
      <MemberSignature Language="C#" Value="public static System.Threading.Overlapped Unpack (System.Threading.NativeOverlapped* nativeOverlappedPtr);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Overlapped Unpack(valuetype System.Threading.NativeOverlapped* nativeOverlappedPtr) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Threading.Overlapped</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="nativeOverlappedPtr" Type="System.Threading.NativeOverlapped*" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Threading.NativeOverlapped" /> structure is not freed from physical memory until you call the <see cref="M:System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Unpacks the specified unmanaged <see cref="T:System.Threading.NativeOverlapped" /> structure into a managed <see cref="T:System.Threading.Overlapped" /> object. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Threading.Overlapped" /> object containing the information unpacked from the native structure.</para>
        </returns>
        <param name="nativeOverlappedPtr">
          <attribution license="cc4" from="Microsoft" modified="false" />An unmanaged pointer to a <see cref="T:System.Threading.NativeOverlapped" /> structure.</param>
      </Docs>
    </Member>
    <Member MemberName="UnsafePack">
      <MemberSignature Language="C#" Value="public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Threading.NativeOverlapped* UnsafePack(class System.Threading.IOCompletionCallback iocb) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete("Use UnsafePack(iocb, userData) instead")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Threading.NativeOverlapped*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iocb" Type="System.Threading.IOCompletionCallback" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. The <see cref="T:System.Threading.NativeOverlapped" /> structure is fixed in physical memory until <see cref="M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*)" /> is called. </para>
          <para>The caller is responsible for pinning the buffer. If the application domain is unloaded, however, the handle to the pinned buffer is destroyed and the buffer is released, leaving the I/O operation to write to the freed address. For this reason, it is better to use the <see cref="M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object)" /> method overload, in which the runtime pins the buffer. </para>
          <block subset="none" type="note">
            <para>Using the <see cref="M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object)" /> method could inadvertently open up a security hole. Code access security bases its permission checks on the permissions of all the callers on the stack. The <see cref="M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object)" /> method does not propagate the calling stack. Malicious code might be able to exploit this to avoid permission checks.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Packs the current instance into a <see cref="T:System.Threading.NativeOverlapped" /> structure specifying the delegate to invoke when the asynchronous I/O operation is complete. Does not propagate the calling stack.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An unmanaged pointer to a <see cref="T:System.Threading.NativeOverlapped" /> structure. </para>
        </returns>
        <param name="iocb">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.IOCompletionCallback" /> delegate that represents the callback method invoked when the asynchronous I/O operation completes.</param>
      </Docs>
    </Member>
    <Member MemberName="UnsafePack">
      <MemberSignature Language="C#" Value="public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Threading.NativeOverlapped* UnsafePack(class System.Threading.IOCompletionCallback iocb, object userData) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Threading.NativeOverlapped*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iocb" Type="System.Threading.IOCompletionCallback" />
        <Parameter Name="userData" Type="System.Object" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. The <see cref="T:System.Threading.NativeOverlapped" /> structure is fixed in physical memory until <see cref="M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*)" /> is called.</para>
          <para>The buffer or buffers specified in <paramref name="userData" /> must be the same as those passed to the unmanaged operating system function that performs the asynchronous I/O. </para>
          <para>The runtime pins the buffer or buffers specified in <paramref name="userData" /> for the duration of the I/O operation. If the application domain is unloaded, the runtime keeps the memory pinned until the I/O operation completes.</para>
          <block subset="none" type="note">
            <para>Using the <see cref="M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object)" /> method could inadvertently open up a security hole. Code access security bases its permission checks on the permissions of all the callers on the stack. The <see cref="M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object)" /> method does not propagate the calling stack. Malicious code might be able to exploit this to avoid permission checks.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Packs the current instance into a <see cref="T:System.Threading.NativeOverlapped" /> structure, specifying the delegate to invoke when the asynchronous I/O operation is complete and the managed object that serves as a buffer. Does not propagate the calling stack.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An unmanaged pointer to a <see cref="T:System.Threading.NativeOverlapped" /> structure. </para>
        </returns>
        <param name="iocb">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Threading.IOCompletionCallback" /> delegate that represents the callback method invoked when the asynchronous I/O operation completes.</param>
        <param name="userData">
          <attribution license="cc4" from="Microsoft" modified="false" />An object or array of objects representing the input or output buffer for the operation. Each object represents a buffer, for example an array of bytes.</param>
      </Docs>
    </Member>
  </Members>
</Type>