SafeHandle.DangerousGetHandle Método

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 utilizar este método para recuperar el valor de 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 necesario para la compatibilidad con versiones anteriores porque muchas propiedades de IntPtr la .NET Framework devolver tipos de identificador.This method is needed for backwards compatibility because many properties in the .NET Framework return IntPtr handle types. IntPtrlos tipos de identificador son tipos específicos de la plataforma que se usan para representar un puntero o un identificador.IntPtr handle types are platform-specific types used to represent a pointer or a handle.

Precaución

El uso DangerousGetHandle del método puede suponer riesgos de seguridad porque, si el identificador se ha marcado SetHandleAsInvalidcomo DangerousGetHandle no válido con, devuelve el valor de identificador potencialmente obsoleto original.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. El identificador devuelto también se puede reciclar en cualquier punto.The returned handle can also be recycled at any point. Lo mejor, esto significa que el identificador puede dejar de funcionar repentinamente.At best, this means the handle might suddenly stop working. En el peor de los demás, si el identificador o el recurso que representa el identificador se exponen al código que no es de confianza, esto puede provocar un ataque de seguridad de reciclaje en el controlador 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 que no es de confianza puede consultar los datos del identificador que se acaba de devolver y recibir información de 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. Vea los DangerousAddRef DangerousRelease métodos y para obtener más información sobre el uso DangerousGetHandle de methodsafely.See the DangerousAddRef and the DangerousRelease methods for more information about using the DangerousGetHandle methodsafely.

Seguridad

SecurityPermission
para obtener permiso para 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