Partager via


Overlapped.UnsafePack Méthode

Définition

Compresse l'instance actuelle en une structure NativeOverlapped. Ne propage pas la pile appelante.

Surcharges

UnsafePack(IOCompletionCallback)
Obsolète.
Obsolète.
Obsolète.

Comprime l'instance actuelle dans une structure NativeOverlapped pour spécifier le délégué à appeler lorsque l'opération d'E/S asynchrone est terminée. Ne propage pas la pile appelante.

UnsafePack(IOCompletionCallback, Object)

Comprime l'instance actuelle dans une structure NativeOverlapped pour spécifier le délégué à appeler lorsque l'opération d'E/S asynchrone est terminée et l'objet managé qui sert de mémoire tampon. Ne propage pas la pile appelante.

UnsafePack(IOCompletionCallback)

Source:
Overlapped.cs
Source:
Overlapped.cs
Source:
Overlapped.cs

Attention

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

Attention

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

Attention

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

Important

Cette API n’est pas conforme CLS.

Comprime l'instance actuelle dans une structure NativeOverlapped pour spécifier le délégué à appeler lorsque l'opération d'E/S asynchrone est terminée. Ne propage pas la pile appelante.

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>

Paramètres

iocb
IOCompletionCallback

Délégué IOCompletionCallback qui représente la méthode de rappel appelée lorsque l'opération asynchrone d'E/S est terminée.

Retours

Pointeur non managé vers une structure NativeOverlapped.

Attributs

Exceptions

Le Overlapped en cours a déjà été compressé.

Remarques

Le pointeur non managé retourné par cette méthode peut être passé au système d’exploitation dans les opérations d’E/S qui se chevauchent. La NativeOverlapped structure est fixe en mémoire physique jusqu’à ce qu’elle Unpack soit appelée.

L’appelant est responsable de l’épinglage de la mémoire tampon. Toutefois, si le domaine d’application est déchargé, le handle de la mémoire tampon épinglée est détruit et la mémoire tampon est libérée, laissant l’opération d’E/S écrire dans l’adresse libérée. Pour cette raison, il est préférable d’utiliser la surcharge de méthode UnsafePack(IOCompletionCallback, Object) , dans laquelle le runtime épingle la mémoire tampon.

Attention

L’utilisation de la UnsafePack méthode peut ouvrir par inadvertance un trou de sécurité. La sécurité d’accès du code base ses vérifications d’autorisation sur les autorisations de tous les appelants sur la pile. La UnsafePack méthode ne propage pas la pile appelante. Un code malveillant peut être en mesure d’exploiter ce pour éviter les vérifications d’autorisation.

S’applique à

UnsafePack(IOCompletionCallback, Object)

Source:
Overlapped.cs
Source:
Overlapped.cs
Source:
Overlapped.cs

Important

Cette API n’est pas conforme CLS.

Comprime l'instance actuelle dans une structure NativeOverlapped pour spécifier le délégué à appeler lorsque l'opération d'E/S asynchrone est terminée et l'objet managé qui sert de mémoire tampon. Ne propage pas la pile appelante.

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>

Paramètres

iocb
IOCompletionCallback

Délégué IOCompletionCallback qui représente la méthode de rappel appelée lorsque l'opération asynchrone d'E/S est terminée.

userData
Object

Objet ou tableau d'objets représentant la mémoire tampon d'entrée ou de sortie pour l'opération. Chaque objet représente une mémoire tampon, par exemple un tableau d'octets.

Retours

Pointeur non managé vers une structure NativeOverlapped.

Attributs

Exceptions

L'appelant n'a pas l'autorisation requise.

Overlapped en cours est déjà compacté.

Remarques

Le pointeur non managé retourné par cette méthode peut être passé au système d’exploitation dans les opérations d’E/S qui se chevauchent. La NativeOverlapped structure est fixe en mémoire physique jusqu’à ce qu’elle Unpack soit appelée.

La ou les mémoires tampons spécifiées dans userData doivent être identiques à celles passées à la fonction de système d’exploitation non managée qui effectue les E/S asynchrones.

Le runtime épingle la mémoire tampon ou les tampons spécifiés dansuserData pendant la durée de l’opération d’E/S. Si le domaine d’application est déchargé, le runtime conserve la mémoire épinglée jusqu’à ce que l’opération d’E/S se termine.

Attention

L’utilisation de la UnsafePack méthode peut ouvrir par inadvertance un trou de sécurité. La sécurité d’accès du code base ses vérifications d’autorisation sur les autorisations de tous les appelants sur la pile. La UnsafePack méthode ne propage pas la pile appelante. Un code malveillant peut être en mesure d’exploiter ce pour éviter les vérifications d’autorisation.

S’applique à