Overlapped.UnsafePack Overlapped.UnsafePack Overlapped.UnsafePack Method

定義

現在のインスタンスを NativeOverlapped 構造体にパックします。Packs the current instance into a NativeOverlapped structure. コール スタックは反映しません。Does not propagate the calling stack.

オーバーロード

UnsafePack(IOCompletionCallback) UnsafePack(IOCompletionCallback) UnsafePack(IOCompletionCallback)

非同期 I/O 操作が完了したときに呼び出すデリゲートを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。Packs the current instance into a NativeOverlapped structure specifying the delegate to invoke when the asynchronous I/O operation is complete. コール スタックは反映しません。Does not propagate the calling stack.

UnsafePack(IOCompletionCallback, Object) UnsafePack(IOCompletionCallback, Object) UnsafePack(IOCompletionCallback, Object)

非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。Packs the current instance into a 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.

UnsafePack(IOCompletionCallback) UnsafePack(IOCompletionCallback) UnsafePack(IOCompletionCallback)

警告

この API は現在使われていません。

重要

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

非同期 I/O 操作が完了したときに呼び出すデリゲートを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。Packs the current instance into a NativeOverlapped structure specifying the delegate to invoke when the asynchronous I/O operation is complete. コール スタックは反映しません。Does not propagate the calling stack.

public:
 System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb);
[System.CLSCompliant(false)]
[System.Obsolete("Use UnsafePack(iocb, userData) instead")]
[System.Obsolete("This method is not safe.  Use UnsafePack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
[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);
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>

パラメーター

iocb
IOCompletionCallback IOCompletionCallback IOCompletionCallback

非同期 I/O 操作が完了したときに呼び出すコールバック メソッドを表す IOCompletionCallback デリゲート。An IOCompletionCallback delegate that represents the callback method invoked when the asynchronous I/O operation completes.

戻り値

NativeOverlapped 構造体へのアンマネージ ポインター。An unmanaged pointer to a NativeOverlapped structure.

例外

現在の Overlapped は既にパックされています。The current Overlapped has already been packed.

注釈

オーバー ラップした I/O 操作で、オペレーティング システムには、このメソッドによって返されるアンマネージ ポインターを渡すことができます。The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. NativeOverlappedまで物理メモリ内構造は固定Unpackが呼び出されます。The NativeOverlapped structure is fixed in physical memory until Unpack is called.

呼び出し元は、バッファーのピン留めします。The caller is responsible for pinning the buffer. ただし、アプリケーション ドメインがアンロードされた場合は、固定されたバッファーへのハンドルが破棄されて、バッファーが解放され、解放されたアドレスへ書き込むための I/O 操作が残ります。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. このため、ランタイムがバッファをピン留めするUnsafePack(IOCompletionCallback, Object)メソッド オーバー ロードを使用することをお勧めします。For this reason, it is better to use the UnsafePack(IOCompletionCallback, Object) method overload, in which the runtime pins the buffer.

注意事項

使用して、UnsafePackメソッドは、セキュリティ ホールを誤って開けません。Using the UnsafePack 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. UnsafePackメソッドでは、呼び出し元のスタックは反映しません。The UnsafePack method does not propagate the calling stack. 悪意のあるコードは、アクセス許可のチェックを回避するためにこれを利用できる可能性があります。Malicious code might be able to exploit this to avoid permission checks.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。Requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

UnsafePack(IOCompletionCallback, Object) UnsafePack(IOCompletionCallback, Object) UnsafePack(IOCompletionCallback, Object)

重要

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

非同期 I/O 操作が完了したときに呼び出すデリゲートと、バッファーとして機能するマネージド オブジェクトを指定して、現在のインスタンスを NativeOverlapped 構造体にパックします。Packs the current instance into a 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.

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

パラメーター

iocb
IOCompletionCallback IOCompletionCallback IOCompletionCallback

非同期 I/O 操作が完了したときに呼び出すコールバック メソッドを表す IOCompletionCallback デリゲート。An IOCompletionCallback delegate that represents the callback method invoked when the asynchronous I/O operation completes.

userData
Object Object Object

操作の入力バッファーまたは出力バッファーを表す、オブジェクトまたはオブジェクトの配列。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.

戻り値

NativeOverlapped 構造体へのアンマネージ ポインター。An unmanaged pointer to a NativeOverlapped structure.

例外

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

現在の Overlapped は既にパックされています。The current Overlapped is already packed.

注釈

オーバー ラップした I/O 操作で、オペレーティング システムには、このメソッドによって返されるアンマネージ ポインターを渡すことができます。The unmanaged pointer returned by this method can be passed to the operating system in overlapped I/O operations. NativeOverlappedまで物理メモリ内構造は固定Unpackが呼び出されます。The NativeOverlapped structure is fixed in physical memory until Unpack is called.

指定されたバッファーはuserData非同期 I/O を実行するオペレーティング システムのアンマネージ関数に渡されたものと同じである必要があります。The buffer or buffers specified in userData must be the same as those passed to the unmanaged operating system function that performs the asynchronous I/O.

指定されたバッファーは、ランタイムがピン留めuserDataI/O 操作の実行中です。The runtime pins the buffer or buffers specified inuserData for the duration of the I/O operation. アプリケーション ドメインがアンロードされた場合は、ランタイムは、I/O 操作が完了するまでの固定メモリを保持します。If the application domain is unloaded, the runtime keeps the memory pinned until the I/O operation completes.

注意事項

使用して、UnsafePackメソッドは、セキュリティ ホールを誤って開けません。Using the UnsafePack 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. UnsafePackメソッドでは、呼び出し元のスタックは反映しません。The UnsafePack method does not propagate the calling stack. 悪意のあるコードは、アクセス許可のチェックを回避するためにこれを利用できる可能性があります。Malicious code might be able to exploit this to avoid permission checks.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。Requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

適用対象