다음을 통해 공유


SafeHandle.DangerousGetHandle 메서드

정의

handle 필드의 값을 반환합니다.

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

반환

IntPtr

nativeint

IntPtr 필드의 값을 나타내는 handle 입니다. SetHandleAsInvalid()를 사용하여 핸들을 잘못된 핸들로 표시했으면 이 메서드는 오래된 값일 수 있는 원래 핸들 값을 그대로 반환합니다.

설명

이 메서드를 사용하여 파생 클래스의 인스턴스에서 실제 핸들 값을 검색할 SafeHandle 수 있습니다. .NET Framework의 많은 속성이 핸들 형식을 반환 IntPtr 하기 때문에 이전 버전과의 호환성을 위해 이 메서드가 필요합니다. IntPtr 핸들 형식은 포인터 또는 핸들을 나타내는 데 사용되는 플랫폼별 형식입니다.

주의

메서드를 사용하면 핸들이 DangerousGetHandle 으로 유효하지 않은 SetHandleAsInvalidDangerousGetHandle 것으로 표시된 경우 잠재적으로 부실한 원래 핸들 값이 반환되므로 보안 위험이 발생할 수 있습니다. 반환된 핸들은 언제든지 재활용할 수도 있습니다. 이는 핸들이 갑자기 작동을 중지할 수 있음을 의미합니다. 최악의 경우 핸들이 나타내는 핸들 또는 리소스가 신뢰할 수 없는 코드에 노출되면 재사용되거나 반환된 핸들에 대한 재활용 보안 공격이 발생할 수 있습니다. 예를 들어 신뢰할 수 없는 호출자는 방금 반환된 핸들의 데이터를 쿼리하고 완전히 관련이 없는 리소스에 대한 정보를 받을 수 있습니다. 메서드를 DangerousAddRefDangerousRelease 안전하게 사용하는 방법에 대한 자세한 내용은 및 메서드를 DangerousGetHandle 참조하세요.

적용 대상