Compartilhar via


Marshal.DestroyStructure Método

Definição

Sobrecargas

DestroyStructure(IntPtr, Type)
Obsoleto.

Libera todas as subestruturas para as quais o bloco de memória não gerenciada especificado aponta.

DestroyStructure<T>(IntPtr)

Libera todas as subestruturas de um tipo especificado para as quais o bloco de memória não gerenciado especificado aponta.

DestroyStructure(IntPtr, Type)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.CoreCLR.cs

Cuidado

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 as subestruturas para as quais o bloco de memória não gerenciada especificado aponta.

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

Um ponteiro para um bloco não gerenciado de memória.

structuretype
Type

Tipo de uma classe formatada. Isso fornece as informações de layout necessárias para excluir o buffer no parâmetro ptr.

Atributos

Exceções

structureType tem um layout automático. Use explícito ou sequencial no seu lugar.

Comentários

Você pode usar esse método para liberar campos de tipo de referência, como cadeias de caracteres, de uma estrutura não gerenciada. Ao contrário de seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. Estruturas de tipo de valor que contêm campos de tipo de valor (todos blittable) não têm referências cuja memória deve ser liberada. O Marshal.StructureToPtr método usa esse método para evitar vazamentos de memória ao reutilização da memória ocupada por uma estrutura.

DestroyStructure chama a função COM SysFreeString , que, por sua vez, libera uma cadeia de caracteres alocada.

Além de DestroyStructure, a Marshal classe fornece dois outros métodos de desalocação de memória: FreeCoTaskMem e FreeHGlobal.

Confira também

Aplica-se a

DestroyStructure<T>(IntPtr)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Libera todas as subestruturas de um tipo especificado para as quais o bloco de memória não gerenciado especificado aponta.

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

O tipo da estrutura formatada. Isso fornece as informações de layout necessárias para excluir o buffer no parâmetro ptr.

Parâmetros

ptr
IntPtr

nativeint

Um ponteiro para um bloco não gerenciado de memória.

Atributos

Exceções

T tem um layout automático. Use explícito ou sequencial no seu lugar.

Comentários

Você pode usar esse método para liberar campos de tipo de referência, como cadeias de caracteres, de uma estrutura não gerenciada. Ao contrário de seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. As estruturas de tipo de valor que contêm campos de tipo de valor (todos blittable) não têm referências cuja memória deve ser liberada. O Marshal.StructureToPtr método usa esse método para evitar vazamentos de memória ao reutilização da memória ocupada por uma estrutura.

DestroyStructure chama a função COM SysFreeString , que, por sua vez, libera uma cadeia de caracteres alocada.

Aplica-se a