Overlapped.UnsafePack メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のインスタンスを NativeOverlapped 構造体にパックします。 呼び出し元スタックを伝達しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| UnsafePack(IOCompletionCallback) |
古い.
古い.
非同期 I/O 操作が完了したときに呼び出すデリゲートを指定する NativeOverlapped 構造体に現在のインスタンスをパックします。 呼び出し元スタックを伝達しません。 |
| UnsafePack(IOCompletionCallback, Object) |
現在のインスタンスを NativeOverlapped 構造体にパックし、非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定します。 呼び出し元スタックを伝達しません。 |
UnsafePack(IOCompletionCallback)
注意事項
This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202
注意事項
This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202
重要
この API は CLS 準拠ではありません。
非同期 I/O 操作が完了したときに呼び出すデリゲートを指定する NativeOverlapped 構造体に現在のインスタンスをパックします。 呼び出し元スタックを伝達しません。
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")]
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)>]
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)>]
[<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>
[<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>
パラメーター
- iocb
- IOCompletionCallback
非同期 I/O 操作の完了時に呼び出されるコールバック メソッドを表す IOCompletionCallback デリゲート。
返品
NativeOverlapped構造体へのアンマネージ ポインター。
- 属性
例外
現在の Overlapped は既にパックされています。
注釈
このメソッドによって返されるアンマネージ ポインターは、重複した I/O 操作でオペレーティング システムに渡すことができます。 NativeOverlapped構造体は、Unpackが呼び出されるまで物理メモリ内で固定されます。
呼び出し元は、バッファーをピン留めする役割を担います。 ただし、アプリケーション ドメインがアンロードされると、固定バッファーへのハンドルが破棄され、バッファーが解放され、解放されたアドレスに書き込む I/O 操作が残ります。 このため、ランタイムがバッファーをピン留めする UnsafePack(IOCompletionCallback, Object) メソッドのオーバーロードを使用することをお勧めします。
Caution
UnsafePackメソッドを使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 UnsafePack メソッドは呼び出し元スタックを伝達しません。 悪意のあるコードは、アクセス許可チェックを回避するためにこれを利用できる可能性があります。
適用対象
UnsafePack(IOCompletionCallback, Object)
重要
この API は CLS 準拠ではありません。
現在のインスタンスを NativeOverlapped 構造体にパックし、非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定します。 呼び出し元スタックを伝達しません。
public:
System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb, System::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)]
public System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb, object userData);
[<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>
[<System.CLSCompliant(false)>]
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 を実行するアンマネージド オペレーティング システム関数に渡されるものと同じである必要があります。
ランタイムは、I/O 操作の間userData で指定されたバッファーをピン留めします。 アプリケーション ドメインがアンロードされた場合、ランタイムは I/O 操作が完了するまでメモリを固定したままにします。
Caution
UnsafePackメソッドを使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 UnsafePack メソッドは呼び出し元スタックを伝達しません。 悪意のあるコードは、アクセス許可チェックを回避するためにこれを利用できる可能性があります。