次の方法で共有


Overlapped.UnsafePack メソッド

定義

現在のインスタンスを NativeOverlapped 構造体にパックします。 コール スタックは反映しません。

オーバーロード

UnsafePack(IOCompletionCallback)
古い.
古い.
古い.

非同期 I/O 操作が完了したときに呼び出すデリゲートを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。 コール スタックは反映しません。

UnsafePack(IOCompletionCallback, Object)

非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。 コール スタックは反映しません。

UnsafePack(IOCompletionCallback)

ソース:
Overlapped.cs
ソース:
Overlapped.cs
ソース:
Overlapped.cs

注意事項

This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202

注意事項

This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.

注意事項

This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202

重要

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

非同期 I/O 操作が完了したときに呼び出すデリゲートを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。 コール スタックは反映しません。

public:
 System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
[<System.Security.SecurityCritical>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>

パラメーター

iocb
IOCompletionCallback

非同期 I/O 操作が完了したときに呼び出すコールバック メソッドを表す IOCompletionCallback デリゲート。

戻り値

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

属性

例外

現在の Overlapped は既にパックされています。

注釈

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

呼び出し元は、バッファーのピン留めします。 ただし、アプリケーション ドメインがアンロードされた場合は、固定されたバッファーへのハンドルが破棄されて、バッファーが解放され、解放されたアドレスへ書き込むための I/O 操作が残ります。 このため、ランタイムがバッファーをピン留めする UnsafePack(IOCompletionCallback, Object)メソッド オーバーロードを使用することをお勧めします。

注意事項

メソッドを UnsafePack 使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 メソッドは UnsafePack 呼び出し元のスタックを伝達しません。 悪意のあるコードでは、これを悪用してアクセス許可チェックを回避できる可能性があります。

適用対象

UnsafePack(IOCompletionCallback, Object)

ソース:
Overlapped.cs
ソース:
Overlapped.cs
ソース:
Overlapped.cs

重要

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

非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。 コール スタックは反映しません。

public:
 System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb, System::Object ^ userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb, object? userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[<System.CLSCompliant(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>

パラメーター

iocb
IOCompletionCallback

非同期 I/O 操作が完了したときに呼び出すコールバック メソッドを表す IOCompletionCallback デリゲート。

userData
Object

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

戻り値

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

属性

例外

呼び出し元に、必要なアクセス許可がありません。

現在の Overlapped は既にパックされています。

注釈

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

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

ランタイムは、 でuserData 指定されたバッファーを I/O 操作の間ピン留めします。 アプリケーション ドメインがアンロードされた場合、ランタイムは I/O 操作が完了するまでメモリを固定したままにします。

注意事項

メソッドを UnsafePack 使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 メソッドは UnsafePack 呼び出し元のスタックを伝達しません。 悪意のあるコードでは、これを悪用してアクセス許可チェックを回避できる可能性があります。

適用対象