SafeHandle.DangerousGetHandle Méthode

Définition

Retourne la valeur du champ handle.

public:
 IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle ();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr

Retours

IntPtr

nativeint

IntPtr représentant la valeur du champ handle. Si le handle a été marqué comme étant non valide avec SetHandleAsInvalid(), cette méthode retourne quand même la valeur de handle d'origine, qui peut être une valeur périmée.

Remarques

Vous pouvez utiliser cette méthode pour récupérer la valeur de handle réelle à partir d’un instance de la SafeHandle classe dérivée. Cette méthode est nécessaire pour la compatibilité descendante, car de nombreuses propriétés dans le .NET Framework retournent IntPtr des types de handle. IntPtr les types de handle sont des types spécifiques à la plateforme utilisés pour représenter un pointeur ou un handle.

Attention

L’utilisation de la DangerousGetHandle méthode peut poser des risques de sécurité, car, si le handle a été marqué comme non valide avec SetHandleAsInvalid, DangerousGetHandle retourne toujours la valeur de handle d’origine, potentiellement obsolète. La poignée retournée peut également être recyclée à tout moment. Au mieux, cela signifie que le handle peut cesser soudainement de fonctionner. Au pire, si le handle ou la ressource que le handle représente est exposé à du code non approuvé, cela peut entraîner une attaque de sécurité de recyclage sur le handle réutilisé ou retourné. Par exemple, un appelant non approuvé peut interroger des données sur le handle qui vient d’être retourné et recevoir des informations pour une ressource entièrement non liée. Consultez les DangerousAddRef méthodes et DangerousRelease pour plus d’informations sur l’utilisation de la DangerousGetHandle méthode en toute sécurité.

S’applique à