Marshal.DestroyStructure Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.