SafeHandle.DangerousGetHandle Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den Wert des handle Felds zurück.
public:
IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr
Gibt zurück
nativeint
Ein IntPtr Wert, der den Wert des handle Felds darstellt. Wenn das Handle als ungültig SetHandleAsInvalid()markiert wurde, gibt diese Methode weiterhin den ursprünglichen Handlewert zurück, der ein veralteter Wert sein kann.
Hinweise
Mit dieser Methode können Sie den tatsächlichen Handlewert aus einer Instanz der SafeHandle abgeleiteten Klasse abrufen. Diese Methode ist aus Gründen der Abwärtskompatibilität erforderlich, da viele Eigenschaften im .NET Framework IntPtr Handle-Typen zurückgeben.
IntPtr Handletypen sind plattformspezifische Typen, die zum Darstellen eines Zeigers oder eines Handles verwendet werden.
Vorsicht
Die Verwendung der DangerousGetHandle Methode kann Sicherheitsrisiken darstellen, da, wenn der Handle als ungültig SetHandleAsInvalidmarkiert wurde, DangerousGetHandle weiterhin den ursprünglichen, potenziell veralteten Handlewert zurückgibt. Der zurückgegebene Ziehpunkt kann auch jederzeit wiederverwendet werden. Am besten bedeutet dies, dass der Griff plötzlich nicht mehr funktioniert. Wenn der Handle oder die Ressource, die der Handle darstellt, im schlimmsten Fall nicht vertrauenswürdigen Code verfügbar gemacht wird, kann dies zu einem Wiederverwertungssicherheitsangriff auf das wiederverwendete oder zurückgegebene Handle führen. Ein nicht vertrauenswürdiger Aufrufer kann z. B. Daten zum soeben zurückgegebenen Handle abfragen und Informationen für eine völlig nicht verknüpfte Ressource empfangen. Weitere Informationen zur sicheren Verwendung der DangerousAddRef Methode finden Sie in den DangerousRelease methoden und den DangerousGetHandle Methoden.