CriticalHandle CriticalHandle CriticalHandle CriticalHandle Class

Definición

Representa una clase contenedora para los recursos de controlador.Represents a wrapper class for handle resources.

public ref class CriticalHandle abstract : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
Public MustInherit Class CriticalHandle
Inherits CriticalFinalizerObject
Implements IDisposable
Herencia
Derivado
Atributos
Implementaciones

Comentarios

La CriticalHandle clase es similar a la SafeHandle clase, salvo que SafeHandle implementa el recuento de referencias.The CriticalHandle class is similar to the SafeHandle class, except that SafeHandle implements reference counting. Puede usar CriticalHandle en lugar de para SafeHandle tratar las consideraciones de rendimiento cuando puede proporcionar la sincronización necesaria de forma más eficaz.You can use CriticalHandle instead of SafeHandle to address performance considerations when you can provide the necessary synchronization more efficiently yourself.

Dado que CriticalHandle la clase no realiza el recuento de referencias, no proporciona protección contra los ataques de seguridad de reciclaje de los controladores.Because the CriticalHandle class does not perform reference counting, it does not provide protection from handle recycling security attacks. Dado que el algoritmo de recuento de referencias serializa implícitamente las operaciones, también se pierde una cierta cantidad de seguridad para subprocesos.Because the reference counting algorithm implicitly serializes operations, a certain amount of thread safety is also lost. Si llama al IDisposable.Dispose método o Close mientras una operación que está utilizando el identificador está pendiente en otro subproceso, o si llama IDisposable.Dispose a o Close desde dos subprocesos al mismo tiempo, los resultados son no deterministas.If you call the IDisposable.Dispose or Close method while an operation that is using the handle is outstanding on another thread, or if you call IDisposable.Dispose or Close from two threads at the same time, the results are non-deterministic. La CriticalHandle clase sigue proporcionando la finalización crítica garantizada proporcionada por CriticalFinalizerObject la clase.The CriticalHandle class still provides the guaranteed critical finalization provided by the CriticalFinalizerObject class.

Constructores

CriticalHandle(IntPtr) CriticalHandle(IntPtr) CriticalHandle(IntPtr) CriticalHandle(IntPtr)

Inicializa una nueva instancia de la clase CriticalHandle con un valor de identificador no válido especificado.Initializes a new instance of the CriticalHandle class with the specified invalid handle value.

Campos

handle handle handle handle

Especifica el identificador que se va a ajustar.Specifies the handle to be wrapped.

Propiedades

IsClosed IsClosed IsClosed IsClosed

Obtiene un valor que indica si el identificador está cerrado.Gets a value indicating whether the handle is closed.

IsInvalid IsInvalid IsInvalid IsInvalid

Cuando se invalida en una clase derivada, obtiene un valor que indica si este identificador es no válido.When overridden in a derived class, gets a value indicating whether the handle value is invalid.

Métodos

Close() Close() Close() Close()

Marca el identificador para soltar y liberar recursos.Marks the handle for releasing and freeing resources.

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos que usa CriticalHandle.Releases all resources used by the CriticalHandle.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libera los recursos no administrados utilizados por la clase CriticalHandle que especifica si se va a realizar una operación de desecho normal.Releases the unmanaged resources used by the CriticalHandle class specifying whether to perform a normal dispose operation.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Finalize() Finalize() Finalize() Finalize()

Libera todos los recursos asociados al identificador.Frees all resources associated with the handle.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ReleaseHandle() ReleaseHandle() ReleaseHandle() ReleaseHandle()

Cuando se invalida en una clase derivada, ejecuta el código necesario para liberar el identificador.When overridden in a derived class, executes the code required to free the handle.

SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr)

Establece el identificador en el identificador preexistente.Sets the handle to the specified pre-existing handle.

SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid()

Marca un identificador como no válido.Marks a handle as invalid.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Seguridad

InheritanceDemand
para plena confianza para los desarrolladores de herederos.for full trust for inheritors. Este miembro no se puede heredar por código de confianza parcial.This member cannot be inherited by partially trusted code.

SecurityCriticalAttribute
requiere plena confianza para el llamador inmediato.requires full trust for the immediate caller. Esta clase no se puede usar en código de confianza parcial o transparente.This class cannot be used by partially trusted or transparent code.

Se aplica a

Consulte también: