SafeHandle.DangerousGetHandle Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve el valor del campo handle.
public:
IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle ();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr
Devoluciones
nativeint
IntPtr que representa el valor del campo handle. 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.
Comentarios
Puede usar este método para recuperar el valor de identificador real de una instancia de la SafeHandle clase derivada. Este método es necesario para la compatibilidad con versiones anteriores porque muchas propiedades de .NET Framework devuelven IntPtr
tipos de identificador.
IntPtr
los tipos de identificador son tipos específicos de la plataforma que se usan para representar un puntero o un identificador.
Precaución
El uso del DangerousGetHandle método puede suponer riesgos de seguridad porque, si el identificador se ha marcado como no válido con SetHandleAsInvalid, DangerousGetHandle sigue devuelve el valor de identificador original y potencialmente obsoleto. El asa devuelta también se puede reciclar en cualquier momento. En el mejor de los casos, esto significa que el controlador podría dejar de funcionar de repente. En el peor de los casos, si el identificador o el recurso que representa el identificador se expone al código que no es de confianza, esto puede provocar un ataque de seguridad de reciclaje en el identificador reutilizado o devuelto. Por ejemplo, un autor de llamada que no es de confianza puede consultar datos en el identificador que acaba de devolver y recibir información de un recurso completamente no relacionado. Consulte los DangerousAddRef métodos y DangerousRelease para obtener más información sobre el uso del DangerousGetHandle método de forma segura.