Поделиться через


SafeNCryptHandle Класс

Определение

Предоставляет безопасный дескриптор для использования объектами криптографии следующего поколения (CNG).

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

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
Наследование
Наследование
SafeNCryptHandle
Производный
Атрибуты

Комментарии

Этот класс заключает логику для правильного дублирования и освобождает эти дескриптора для имитации собственного дублирования.

Каждый открытый объект дескриптора можно считать одним из трех состояний:

  • Владелец — создано с помощью маршалера, традиционного стиля безопасной дескриптор. Примечательно, что для данного собственного дескриптора существует только один дескриптор владельца.
  • Дублировать — указывает на дескриптор в состоянии "Владелец". Освобождение дескриптора в состоянии дубликата приводит только к уменьшению количества ссылок держателя, но не к освобождению собственного дескриптора.
  • Владелец — удерживает собственный дескриптор и ссылается на дескриптор в повторяющемся состоянии. При закрытии всех повторяющихся дескрипторов маркер-держатель освобождает собственный дескриптор. Ручка-держатель никогда не будет завершена, так как это приводит к гонке между доработателями дублирующихся дескрипторов и ручкой-держателем. Вместо этого он полагается на завершение всех повторяющихся дескрипторов и уменьшения числа ссылок до нуля. На экземпляры дескриптора-держателя никогда не следует ссылаться только на повторяющийся дескриптор.

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

SafeNCryptHandle()

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

Инициализирует новый экземпляр класса SafeNCryptHandle.

SafeNCryptHandle(IntPtr, SafeHandle)

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

Создает новый экземпляр класса SafeNCryptHandle.

Поля

handle

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

Определяет инкапсулируемый дескриптор.

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

Свойства

IsClosed

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

Возвращает значение, показывающее, является ли дескриптор закрытым.

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

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

Получает значение, указывающее, является ли дескриптор недействительным.

IsInvalid

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

Получает значение, указывающее, является ли дескриптор недействительным.

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

Методы

Close()

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

Помечает дескриптор для освобождения самого дескриптора и соответствующих ресурсов.

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

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

Вручную увеличивает счетчик ссылок для экземпляров SafeHandle.

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

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

Возвращает значение поля handle.

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

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

Вручную уменьшает счетчик ссылок для экземпляра SafeHandle.

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

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

Освобождает все ресурсы, используемые классом SafeHandle.

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

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

Освобождает неуправляемые ресурсы, используемые классом SafeHandle, определяя, нужно ли выполнять обычную операцию удаления.

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

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

Определяет, равен ли указанный объект текущему объекту.

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

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

Служит хэш-функцией по умолчанию.

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

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

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

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

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

Создает неполную копию текущего объекта Object.

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

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

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

ReleaseNativeHandle()

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

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

SetHandle(IntPtr)

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

Определяет дескриптор для заданного ранее существующего дескриптора.

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

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

Помечает дескриптор как больше не используемый.

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

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

Возвращает строку, представляющую текущий объект.

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

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