Aracılığıyla paylaş


Overlapped.UnsafePack Yöntem

Tanım

Geçerli örneği bir NativeOverlapped yapıya paketler. Çağrı yığınını yaymıyor.

Aşırı Yüklemeler

UnsafePack(IOCompletionCallback)
Geçersiz.
Geçersiz.
Geçersiz.

Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılacak temsilciyi belirten geçerli örneği bir NativeOverlapped yapıda paketler. Çağrı yığınını yaymıyor.

UnsafePack(IOCompletionCallback, Object)

Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılacak temsilciyi ve arabellek görevi görecek yönetilen nesneyi belirterek geçerli örneği bir NativeOverlapped yapıya paketler. Çağrı yığınını yaymıyor.

UnsafePack(IOCompletionCallback)

Kaynak:
Overlapped.cs
Kaynak:
Overlapped.cs
Kaynak:
Overlapped.cs

Dikkat

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

Dikkat

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

Dikkat

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

Önemli

Bu API, CLS uyumlu değildir.

Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılacak temsilciyi belirten geçerli örneği bir NativeOverlapped yapıda paketler. Çağrı yığınını yaymıyor.

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>

Parametreler

iocb
IOCompletionCallback

IOCompletionCallback Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılan geri çağırma yöntemini temsil eden bir temsilci.

Döndürülenler

Bir yapıya yönelik yönetilmeyen işaretçi NativeOverlapped .

Öznitelikler

Özel durumlar

Geçerli Overlapped zaten paketlenmiş.

Açıklamalar

Bu yöntem tarafından döndürülen yönetilmeyen işaretçi çakışan G/Ç işlemlerinde işletim sistemine geçirilebilir. Yapı NativeOverlapped , çağrılana kadar Unpack fiziksel bellekte sabittir.

Arabelleği sabitlemek çağıran sorumludur. Ancak uygulama etki alanı kaldırılırsa, sabitlenmiş arabelleğin tanıtıcısı yok edilir ve arabellek serbest bırakılır ve G/Ç işlemi serbest bırakılmış adrese yazılacak şekilde bırakılır. Bu nedenle, çalışma zamanının UnsafePack(IOCompletionCallback, Object) arabelleği sabitlediği yöntem aşırı yüklemesini kullanmak daha iyidir.

Dikkat

yöntemini kullanmak UnsafePack istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. UnsafePack yöntemi çağrı yığınını yaymıyor. Kötü amaçlı kod, izin denetimlerini önlemek için bu durumdan yararlanabilir.

Şunlara uygulanır

UnsafePack(IOCompletionCallback, Object)

Kaynak:
Overlapped.cs
Kaynak:
Overlapped.cs
Kaynak:
Overlapped.cs

Önemli

Bu API, CLS uyumlu değildir.

Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılacak temsilciyi ve arabellek görevi görecek yönetilen nesneyi belirterek geçerli örneği bir NativeOverlapped yapıya paketler. Çağrı yığınını yaymıyor.

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>

Parametreler

iocb
IOCompletionCallback

IOCompletionCallback Zaman uyumsuz G/Ç işlemi tamamlandığında çağrılan geri çağırma yöntemini temsil eden bir temsilci.

userData
Object

İşlem için giriş veya çıkış arabelleği temsil eden nesne veya nesne dizisi. Her nesne, bir bayt dizisi gibi bir arabelleği temsil eder.

Döndürülenler

Bir yapıya yönelik yönetilmeyen işaretçi NativeOverlapped .

Öznitelikler

Özel durumlar

Çağıranın gerekli izni yok.

Geçerli Overlapped zaten paketlenmiş.

Açıklamalar

Bu yöntem tarafından döndürülen yönetilmeyen işaretçi çakışan G/Ç işlemlerinde işletim sistemine geçirilebilir. Yapı NativeOverlapped , çağrılana kadar Unpack fiziksel bellekte sabittir.

içinde userData belirtilen arabellek veya arabellekler, zaman uyumsuz G/Ç'yi gerçekleştiren yönetilmeyen işletim sistemi işlevine geçirilenlerle aynı olmalıdır.

Çalışma zamanı, G/Ç işlemi süresi boyunca içindeuserData belirtilen arabelleği veya arabellekleri sabitler. Uygulama etki alanı kaldırılırsa, G/Ç işlemi tamamlanana kadar çalışma zamanı belleği sabitlenmiş olarak tutar.

Dikkat

yöntemini kullanmak UnsafePack istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. UnsafePack yöntemi çağrı yığınını yaymıyor. Kötü amaçlı kod, izin denetimlerini önlemek için bu durumdan yararlanabilir.

Şunlara uygulanır