Marshal.DestroyStructure Método

Definição

Sobrecargas

Name Description
DestroyStructure(IntPtr, Type)
Obsoleto.

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

DestroyStructure<T>(IntPtr)

Liberta todas as subestruturas de um tipo especificado para onde aponta o bloco de memória não gerida especificado.

DestroyStructure(IntPtr, Type)

Atenção

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

Liberta todas as subestruturas para as quais o bloco de memória não gerida 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.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.Security.SecurityCritical]
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.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
Public Shared Sub DestroyStructure (ptr As IntPtr, structuretype As Type)

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

structuretype
Type

Tipo de aula formatada. Isto fornece a informação de layout necessária para eliminar o buffer no ptr parâmetro.

Atributos

Exceções

structuretype tem um layout automático. Use sequencial ou explícito em vez disso.

Observações

Pode usar este método para libertar campos de referência, como strings, de uma estrutura não gerida. Ao contrário dos seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. Estruturas de tipo valor que contêm campos de tipo valor (todos blitáveis) não têm referências cuja memória deve ser libertada. O Marshal.StructureToPtr método utiliza este método para evitar fugas de memória ao reutilizar memória ocupada por uma estrutura.

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

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

Ver também

Aplica-se a

DestroyStructure<T>(IntPtr)

Liberta todas as subestruturas de um tipo especificado para onde aponta o bloco de memória não gerida 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 Genérico

T

O tipo da estrutura formatada. Isto fornece a informação de layout necessária para eliminar o buffer no ptr parâmetro.

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

Atributos

Exceções

T tem um layout automático. Use sequencial ou explícito em vez disso.

Observações

Pode usar este método para referenciar livremente campos de tipos, como strings, de uma estrutura não gerida. Ao contrário dos seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. Estruturas de tipos de valor que contêm campos de tipo de valor (todos blitáveis) não têm referências cuja memória deve ser libertada. O Marshal.StructureToPtr método utiliza este método para evitar fugas de memória ao reutilizar memória ocupada por uma estrutura.

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

Aplica-se a