Compartilhar via


Método Marshal.DestroyStructure (IntPtr, Type)

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

[SecurityCriticalAttribute]
[ComVisibleAttribute(true)]
public static void DestroyStructure(
    IntPtr ptr,
    Type structuretype
)
public:
[SecurityCriticalAttribute]
[ComVisibleAttribute(true)]
static void DestroyStructure(
    IntPtr ptr,
    Type^ structuretype
)
[<SecurityCriticalAttribute>]
[<ComVisibleAttribute(true)>]
static member DestroyStructure : 
        ptr:nativeint *
        structuretype:Type -> unit
<SecurityCriticalAttribute>
<ComVisibleAttribute(True)>
Public Shared Sub DestroyStructure (
    ptr As IntPtr,
    structuretype As Type
)

Parâmetros

  • ptr
    Type: System.IntPtr

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

  • structuretype
    Type: System.Type

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

Exceções

Exception Condition
ArgumentException

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

Comentários

Você pode usar esse método para liberar os 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 (blittable todos) não possuem referências cuja memória deve ser liberada. O Marshal.StructureToPtr método usa esse método para evitar perdas de memória ao reutilizar a memória ocupada por uma estrutura.

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

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

Segurança

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Informações de Versão

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone
Disponível desde 8.1

Confira Também

FreeCoTaskMem
FreeHGlobal
DestroyStructure Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices
Tipos blittable e não blittable

Retornar ao início