ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped メソッド

定義

重要

この API は CLS 準拠ではありません。

非同期 I/O 操作の完了時に呼び出されるデリゲート、コンテキストを提供するユーザー指定のオブジェクト、およびバッファーとして機能するマネージド オブジェクトを指定して、 NativeOverlapped 構造体へのアンマネージ ポインターを返します。

public:
 System::Threading::NativeOverlapped* UnsafeAllocateNativeOverlapped(System::Threading::IOCompletionCallback ^ callback, System::Object ^ state, System::Object ^ pinData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafeAllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object? state, object? pinData);
[<System.CLSCompliant(false)>]
member this.UnsafeAllocateNativeOverlapped : System.Threading.IOCompletionCallback * obj * obj -> nativeptr<System.Threading.NativeOverlapped>

パラメーター

callback
IOCompletionCallback

非同期 I/O 操作の完了時に呼び出されるコールバック メソッドを表す IOCompletionCallback デリゲート。

state
Object

この NativeOverlapped を他の NativeOverlapped インスタンスと区別するユーザー指定のオブジェクト。 null の可能性があります。

pinData
Object

操作の入力バッファーまたは出力バッファーを表すオブジェクトのオブジェクトまたは配列。 各オブジェクトは、バイト配列などのバッファーを表します。 null の可能性があります。

返品

NativeOverlapped構造体へのアンマネージ ポインター。

属性

例外

callbacknullです。

このメソッドは、 ThreadPoolBoundHandle が破棄された後に呼び出されました。

注釈

このメソッドによって返されるアンマネージ ポインターは、重複した I/O 操作でオペレーティング システムに渡すことができます。 NativeOverlapped構造体は、FreeNativeOverlapped(NativeOverlapped*)が呼び出されるまで物理メモリ内で固定されます。

pinDataで指定するバッファーは、非同期 I/O を実行するアンマネージド オペレーティング システム関数に渡されるものと同じである必要があります。

ExecutionContext はコールバックの呼び出しにフローされません。

Note

pinDataで指定されたバッファーは、I/O 操作の間ピン留めされます。

適用対象