SafeNCryptHandle Класс

Определение

Предоставляет безопасный дескриптор для использования объектами криптографии следующего поколения (CNG).Provides a safe handle that can be used by Cryptography Next Generation (CNG) objects.

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

public ref class SafeNCryptHandle abstract : Microsoft::Win32::SafeHandles::SafeHandleZeroOrMinusOneIsInvalid
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public abstract class SafeNCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
type SafeNCryptHandle = class
    inherit SafeHandleZeroOrMinusOneIsInvalid
Public MustInherit Class SafeNCryptHandle
Inherits SafeHandleZeroOrMinusOneIsInvalid
Наследование
Производный
Атрибуты

Комментарии

Этот класс создает оболочку для правильной дублирования и освобождения этих дескрипторов для имитации дублирования в машинном виде.This class wraps up the logic to correctly duplicate and free these handles to simulate a native duplication.

Каждый открытый объект Handle можно рассматривать как находящийся в одном из трех состояний:Each open handle object can be thought of as being in one of three states:

  • Созданный владельцем через маршалеру, традиционный защищенный маркер стиля.Owner - Created via the marshaler, traditional style safe handle. В частности, для данного собственного маркера существует только один маркер владельца.Notably, only one owner handle exists for a given native handle.
  • Дублирующие точки в маркере в состоянии держателя.Duplicate - Points at a handle in the Holder state. Освобождение маркера в результатах повторяющегося состояния только уменьшением счетчика ссылок владельца, а не в выпуске собственного маркера.Releasing a handle in the duplicate state results only in decrementing the reference count of the holder, not in a release of the native handle.
  • Держатель — удерживается на собственном дескрипторе и на него ссылаются дескрипторы в повторяющемся состоянии.Holder - Holds onto a native handle and is referenced by handles in the duplicate state. Когда все дубликаты дескрипторов закрыты, дескриптор держателя освобождает собственный дескриптор.When all duplicate handles are closed, the holder handle releases the native handle. Дескриптор держателя никогда не будет завершен, так как это приводит к состязания между методами завершения повторяющихся дескрипторов и дескриптором держателя.A holder handle will never be finalized, since this results in a race between the finalizers of the duplicate handles and the holder handle. Вместо этого он полагается на все дубликаты дескрипторов, чтобы быть завершенными и уменьшить число ссылок до нуля.Instead, it relies upon all of the duplicate handles to be finalized and decrement the ref count to zero. На экземпляры маркера-владельца никогда не следует ссылаться ни на один объект, но с помощью повторяющегося маркера.Instances of a holder handle should never be referenced by anything but a duplicate handle.

Конструкторы

SafeNCryptHandle()

Инициализация нового экземпляра класса SafeNCryptHandle.Initializes a new instance of the SafeNCryptHandle class.

SafeNCryptHandle(IntPtr, SafeHandle)

Создает новый экземпляр класса SafeNCryptHandle.Instantiates a new instance of the SafeNCryptHandle class.

Поля

handle

Определяет инкапсулируемый дескриптор.Specifies the handle to be wrapped.

(Унаследовано от SafeHandle)

Свойства

IsClosed

Возвращает значение, показывающее, является ли дескриптор закрытым.Gets a value indicating whether the handle is closed.

(Унаследовано от SafeHandle)
IsInvalid

Методы

Close()

Помечает дескриптор для освобождения самого дескриптора и соответствующих ресурсов.Marks the handle for releasing and freeing resources.

(Унаследовано от SafeHandle)
DangerousAddRef(Boolean)

Вручную увеличивает счетчик ссылок для экземпляров SafeHandle.Manually increments the reference counter on SafeHandle instances.

(Унаследовано от SafeHandle)
DangerousGetHandle()

Возвращает значение поля handle.Returns the value of the handle field.

(Унаследовано от SafeHandle)
DangerousRelease()

Вручную уменьшает счетчик ссылок для экземпляра SafeHandle.Manually decrements the reference counter on a SafeHandle instance.

(Унаследовано от SafeHandle)
Dispose()

Освобождает все ресурсы, используемые классом SafeHandle.Releases all resources used by the SafeHandle class.

(Унаследовано от SafeHandle)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые классом SafeHandle, определяя, нужно ли выполнять обычную операцию удаления.Releases the unmanaged resources used by the SafeHandle class specifying whether to perform a normal dispose operation.

(Унаследовано от SafeHandle)
Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ReleaseHandle()

Освобождает дескриптор, используемый объектом криптографии следующего поколения (Cryptography Next Generation, CNG).Releases a handle used by a Cryptography Next Generation (CNG) object.

ReleaseNativeHandle()

Освобождает собственный дескриптор, используемый объектом криптографии следующего поколения (Cryptography Next Generation, CNG).Releases a native handle used by a Cryptography Next Generation (CNG) object.

SetHandle(IntPtr)

Определяет дескриптор для заданного ранее существующего дескриптора.Sets the handle to the specified pre-existing handle.

(Унаследовано от SafeHandle)
SetHandleAsInvalid()

Помечает дескриптор как больше не используемый.Marks a handle as no longer used.

(Унаследовано от SafeHandle)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Безопасность

SecurityPermission
разрешение на вызов неуправляемого кода.for permission to call unmanaged code. Действие безопасности: InheritanceDemand.Security action: InheritanceDemand. Связанное перечисление: UnmanagedCodeAssociated enumeration: UnmanagedCode

Применяется к