다음을 통해 공유


Overlapped.UnsafePack 메서드

정의

현재 인스턴스를 NativeOverlapped 구조체로 압축합니다. 호출 스택을 전파하지는 않습니다.

오버로드

UnsafePack(IOCompletionCallback)
사용되지 않습니다.
사용되지 않습니다.
사용되지 않습니다.
사용되지 않습니다.

비동기 I/O 작업이 완료될 때 호출할 대리자를 지정하여 현재 인스턴스를 NativeOverlapped 구조체로 압축합니다. 호출 스택을 전파하지는 않습니다.

UnsafePack(IOCompletionCallback, Object)

비동기 I/O 작업이 완료될 때 호출되는 대리자와 버퍼 역할을 하는 관리되는 개체를 지정하여, 현재 인스턴스를 NativeOverlapped 구조체로 압축합니다. 호출 스택을 전파하지는 않습니다.

UnsafePack(IOCompletionCallback)

주의

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

주의

Use UnsafePack(iocb, userData) instead

중요

이 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("Use UnsafePack(iocb, userData) 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.  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>
[<System.CLSCompliant(false)>]
[<System.Obsolete("Use UnsafePack(iocb, userData) instead")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>

매개 변수

iocb
IOCompletionCallback

비동기 I/O 작업이 완료될 때 호출하는 콜백 메서드를 나타내는 IOCompletionCallback 대리자입니다.

반환

NativeOverlapped*

NativeOverlapped 구조체에 대한 관리되지 않는 포인터입니다.

특성

예외

현재 Overlapped가 이미 압축된 경우

설명

이 메서드에서 반환된 관리되지 않는 포인터는 겹치는 I/O 작업에서 운영 체제에 전달할 수 있습니다. 구조체는 NativeOverlapped 호출될 때까지 Unpack 실제 메모리에서 고정됩니다.

호출자는 버퍼를 고정해야 합니다. 그러나 애플리케이션 도메인이 언로드되면, 고정 된 버퍼에 대 한 핸들은 제거 하 고 버퍼 해제 되는 I/O 작업이 해제 된 주소를 쓸. 따라서 런타임이 버퍼를 UnsafePack(IOCompletionCallback, Object) 고정하는 메서드 오버로드를 사용하는 것이 좋습니다.

주의

메서드를 UnsafePack 사용하면 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 사용 권한에 대한 권한 검사를 기반으로 합니다. 메서드는 UnsafePack 호출 스택을 전파하지 않습니다. 악성 코드는 사용 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

적용 대상

UnsafePack(IOCompletionCallback, Object)

중요

이 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*

NativeOverlapped 구조체에 대한 관리되지 않는 포인터입니다.

특성

예외

호출자에게 필요한 권한이 없는 경우

현재 Overlapped이 이미 압축된 경우

설명

이 메서드에서 반환된 관리되지 않는 포인터는 겹치는 I/O 작업에서 운영 체제에 전달할 수 있습니다. 구조체는 NativeOverlapped 호출될 때까지 Unpack 실제 메모리에서 고정됩니다.

지정된 userData 버퍼 또는 버퍼는 비동기 I/O를 수행하는 관리되지 않는 운영 체제 함수에 전달된 버퍼와 동일해야 합니다.

런타임은 I/O 작업 기간 동안 지정된userData 버퍼 또는 버퍼를 고정합니다. 애플리케이션 도메인이 언로드되면, 런타임에서 I/O 작업이 완료 될 때까지 고정 된 메모리를 유지 합니다.

주의

메서드를 UnsafePack 사용하면 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 사용 권한에 대한 권한 검사를 기반으로 합니다. 메서드는 UnsafePack 호출 스택을 전파하지 않습니다. 악성 코드는 사용 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.

적용 대상