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() |
Этот 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) |