Compartir a través de


Marshal.DestroyStructure Método

Definición

Sobrecargas

DestroyStructure(IntPtr, Type)
Obsoletos.

Libera todas las subestructuras a las que apunta el bloque de memoria no administrada especificado.

DestroyStructure<T>(IntPtr)

Libera todas las subestructuras de un tipo especificado a las que apunta el bloque de memoria no administrada especificado.

DestroyStructure(IntPtr, Type)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.CoreCLR.cs

Precaución

DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520

Libera todas las subestructuras a las que apunta el bloque de memoria no administrada especificado.

public:
 static void DestroyStructure(IntPtr ptr, Type ^ structuretype);
[System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")]
[System.Security.SecurityCritical]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[<System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")>]
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
Public Shared Sub DestroyStructure (ptr As IntPtr, structuretype As Type)

Parámetros

ptr
IntPtr

nativeint

Puntero a un bloque de memoria no administrado.

structuretype
Type

Tipo de una clase con formato. Proporciona la información de diseño necesaria para eliminar el búfer del parámetro ptr.

Atributos

Excepciones

structureType tiene un diseño automático. Utilice, en su lugar, un diseño secuencial o explícito.

Comentarios

Puede usar este método para liberar campos de tipo de referencia, como cadenas, de una estructura no administrada. A diferencia de sus campos, una estructura puede ser un tipo de valor o un tipo de referencia. Las estructuras de tipo de valor que contienen campos de tipo valor (todas las que se pueden transferir en bloque de bits) no tienen referencias cuya memoria debe liberarse. El Marshal.StructureToPtr método usa este método para evitar pérdidas de memoria al reutilizar la memoria ocupada por una estructura.

DestroyStructure llama a la función SysFreeString COM, que, a su vez, libera una cadena asignada.

Además de DestroyStructure, la Marshal clase proporciona otros dos métodos de desasignación de memoria: FreeCoTaskMem y FreeHGlobal.

Consulte también

Se aplica a

DestroyStructure<T>(IntPtr)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Libera todas las subestructuras de un tipo especificado a las que apunta el bloque de memoria no administrada especificado.

public:
generic <typename T>
 static void DestroyStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static void DestroyStructure<T> (IntPtr ptr);
public static void DestroyStructure<T> (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint -> unit
static member DestroyStructure : nativeint -> unit
Public Shared Sub DestroyStructure(Of T) (ptr As IntPtr)

Parámetros de tipo

T

El tipo de estructura con formato. Proporciona la información de diseño necesaria para eliminar el búfer del parámetro ptr.

Parámetros

ptr
IntPtr

nativeint

Puntero a un bloque de memoria no administrado.

Atributos

Excepciones

T tiene un diseño automático. Utilice, en su lugar, un diseño secuencial o explícito.

Comentarios

Puede usar este método para liberar campos de tipo de referencia, como cadenas, de una estructura no administrada. A diferencia de sus campos, una estructura puede ser un tipo de valor o un tipo de referencia. Las estructuras de tipo de valor que contienen campos de tipo de valor (todas las que se pueden transferir en bloque de bits) no tienen referencias cuya memoria se debe liberar. El Marshal.StructureToPtr método usa este método para evitar pérdidas de memoria al reutilizar la memoria ocupada por una estructura.

DestroyStructure llama a la función SysFreeString COM, que, a su vez, libera una cadena asignada.

Se aplica a