SafeHandle.DangerousGetHandle Método

Definición

Devuelve el valor del handle campo.

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

Devoluciones

IntPtr

nativeint

que IntPtr representa el valor del handle campo. Si el identificador se ha marcado como no válido con SetHandleAsInvalid(), este método sigue devuelve el valor de 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 identificadores. IntPtr los tipos de identificador son tipos específicos de la plataforma que se usan para representar un puntero o un identificador.

Caution

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 todavía devuelve el valor de identificador original, potencialmente obsoleto. El mango devuelto también se puede reciclar en cualquier punto. En el mejor de los casos, esto significa que el controlador podría dejar de funcionar repentinamente. En el peor de los casos, si el identificador o el recurso que representa el identificador se expone a 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.

Se aplica a