SafeNCryptHandle Klasse

Definition

Stellt ein sicheres Handle bereit, das von CNG-Objekten (Cryptography Next Generation) verwendet werden kann.

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

public ref class SafeNCryptHandle abstract : Microsoft::Win32::SafeHandles::SafeHandleZeroOrMinusOneIsInvalid
public ref class SafeNCryptHandle abstract : System::Runtime::InteropServices::SafeHandle
public abstract class SafeNCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
public abstract class SafeNCryptHandle : System.Runtime.InteropServices.SafeHandle
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public abstract class SafeNCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
type SafeNCryptHandle = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
type SafeNCryptHandle = class
    inherit SafeHandle
[<System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)>]
type SafeNCryptHandle = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
Public MustInherit Class SafeNCryptHandle
Inherits SafeHandleZeroOrMinusOneIsInvalid
Public MustInherit Class SafeNCryptHandle
Inherits SafeHandle
Vererbung
Vererbung
SafeNCryptHandle
Abgeleitet
Attribute

Hinweise

Diese Klasse schließt die Logik ab, um diese Handles ordnungsgemäß zu duplizieren und freizugeben, um eine native Duplizierung zu simulieren.

Jedes geöffnete Handle-Objekt kann als in einem von drei Zuständen betrachtet werden:

  • Besitzer : Erstellt über den Marshaller, traditionellen stilsicheren Handle. Insbesondere ist für ein bestimmtes natives Handle nur ein Besitzerhandle vorhanden.
  • Duplikat : Zeigt auf ein Handle im Status Holder. Das Freigeben eines Handles im doppelten Zustand führt nur zu einer Dekrementierung der Verweisanzahl des Halters und nicht zu einer Freigabe des nativen Handles.
  • Holder : Hält an einem nativen Handle fest und wird von Handles im doppelten Zustand referenziert. Wenn alle doppelten Handles geschlossen sind, gibt das Halterhandle das native Handle frei. Ein Halterhandle wird nie finalisiert, da dies zu einem Rennen zwischen den Finalizern der doppelten Ziehpunkte und dem Haltegriff führt. Stattdessen basiert sie darauf, dass alle doppelten Handles abgeschlossen werden, die abgeschlossen werden sollen, und die Anzahl der Verweise auf 0 (null) verringert wird. Auf Instanzen eines Besitzerhandles sollte niemals mit einem doppelten Handle verwiesen werden.

Konstruktoren

SafeNCryptHandle()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Initialisiert eine neue Instanz der SafeNCryptHandle-Klasse.

SafeNCryptHandle(IntPtr, SafeHandle)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Instanziiert eine neue Instanz der SafeNCryptHandle-Klasse.

Felder

handle

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt das zu umschließende Handle an.

(Geerbt von SafeHandle)

Eigenschaften

IsClosed

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft einen Wert ab, der angibt, ob das Handle geschlossen ist.

(Geerbt von SafeHandle)
IsInvalid

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft einen Wert ab, der angibt, ob das Handle ungültig ist.

IsInvalid

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft einen Wert ab, der angibt, ob das Handle ungültig ist.

(Geerbt von SafeHandleZeroOrMinusOneIsInvalid)

Methoden

Close()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Markiert das Handle für das Freigeben und Verfügbarmachen von Ressourcen.

(Geerbt von SafeHandle)
DangerousAddRef(Boolean)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Inkrementiert manuell den Verweiszähler für SafeHandle-Instanzen.

(Geerbt von SafeHandle)
DangerousGetHandle()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Wert des handle-Felds zurück.

(Geerbt von SafeHandle)
DangerousRelease()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Dekrementiert manuell den Verweiszähler für eine SafeHandle-Instanz.

(Geerbt von SafeHandle)
Dispose()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt alle von der SafeHandle-Klasse verwendeten Ressourcen frei.

(Geerbt von SafeHandle)
Dispose(Boolean)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt die von der SafeHandle-Klasse verwendeten, nicht verwalteten Ressourcen frei und gibt an, ob ein normaler Freigabevorgang ausgeführt werden soll.

(Geerbt von SafeHandle)
Equals(Object)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ReleaseHandle()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt ein Handle frei, das von einem CNG (Cryptography Next Generation)-Objekt verwendet wird.

ReleaseNativeHandle()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt ein systemeigenes Handle frei, das von einem CNG (Cryptography Next Generation)-Objekt verwendet wird.

SetHandle(IntPtr)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Legt das Handle für das angegebene, bereits vorhandene Handle fest.

(Geerbt von SafeHandle)
SetHandleAsInvalid()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Markiert ein Handle als nicht mehr verwendet.

(Geerbt von SafeHandle)
ToString()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: