SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle SafeHandle.DangerousGetHandle Method

Definición

Devuelve el valor del campo handle.Returns the value of the handle field.

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

Devoluciones

IntPtr que representa el valor del campo handle.An IntPtr representing the value of the handle field. Si el identificador se ha marcado como no válido con SetHandleAsInvalid(), este método todavía devuelve el valor del identificador original, que puede ser un valor obsoleto.If the handle has been marked invalid with SetHandleAsInvalid(), this method still returns the original handle value, which can be a stale value.

Comentarios

Puede usar este método para recuperar el valor del identificador real de una instancia de la SafeHandle clase derivada.You can use this method to retrieve the actual handle value from an instance of the SafeHandle derived class. Este método es necesaria para hacia atrás compatibilidad porque muchas propiedades de .NET Framework devuelven IntPtr controlar tipos.This method is needed for backwards compatibility because many properties in the .NET Framework return IntPtr handle types. IntPtr tipos de identificador son tipos específicos de la plataforma utilizados para representar un puntero o un identificador.IntPtr handle types are platform-specific types used to represent a pointer or a handle.

Precaución

Mediante el DangerousGetHandle método puede suponer riesgos de seguridad porque, si se ha marcado como no válido con el identificador SetHandleAsInvalid, DangerousGetHandle sigue devolviendo el valor del identificador original, potencialmente obsoletos.Using the DangerousGetHandle method can pose security risks because, if the handle has been marked as invalid with SetHandleAsInvalid, DangerousGetHandle still returns the original, potentially stale handle value. También se puede reciclar en cualquier momento el identificador devuelto.The returned handle can also be recycled at any point. En el mejor, esto significa que el identificador, de repente, es posible que dejen de funcionar.At best, this means the handle might suddenly stop working. En el peor, si el identificador o el recurso que representa el identificador se expone al código de confianza, esto puede provocar un ataque de seguridad de reciclaje en el identificador reutilizado o devuelto.At worst, if the handle or the resource that the handle represents is exposed to untrusted code, this can lead to a recycling security attack on the reused or returned handle. Por ejemplo, un llamador de confianza puede consultar datos en el controlador simplemente devueltos y recibir información para un recurso completamente no relacionado.For example, an untrusted caller can query data on the handle just returned and receive information for an entirely unrelated resource. Consulte la DangerousAddRef y DangerousRelease métodos para obtener más información sobre el uso de la DangerousGetHandle methodsafely.See the DangerousAddRef and the DangerousRelease methods for more information about using the DangerousGetHandle methodsafely.

Seguridad

SecurityPermission
Para obtener permiso llamar a código no administrado.for permission to call unmanaged code. Acción de seguridad: LinkDemand.Security action: LinkDemand. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

Se aplica a