Marshal.DestroyStructure Metoda

Definicja

Przeciążenia

DestroyStructure(IntPtr, Type)
Przestarzałe.

Zwalnia wszystkie podstruktury, do których wskazuje określony niezarządzany blok pamięci.

DestroyStructure<T>(IntPtr)

Zwalnia wszystkie podstruktury określonego typu, do którego wskazuje określony niezarządzany blok pamięci.

DestroyStructure(IntPtr, Type)

Źródło:
Marshal.cs
Źródło:
Marshal.cs
Źródło:
Marshal.CoreCLR.cs

Przestroga

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

Zwalnia wszystkie podstruktury, do których wskazuje określony niezarządzany blok pamięci.

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)

Parametry

ptr
IntPtr

nativeint

Wskaźnik do niezarządzanego bloku pamięci.

structuretype
Type

Typ sformatowanej klasy. Zapewnia to informacje o układzie niezbędne do usunięcia buforu w parametrze ptr .

Atrybuty

Wyjątki

structureType ma układ automatyczny. Zamiast tego należy użyć sekwencyjnego lub jawnego.

Uwagi

Tej metody można użyć do zwolnienia pól typu odwołania, takich jak ciągi, struktury niezarządzanej. W przeciwieństwie do jego pól struktura może być typem wartości lub typem odwołania. Struktury typu wartości, które zawierają pola typu wartości (wszystkie blittable) nie mają odwołań, których pamięć musi zostać zwolniona. Metoda Marshal.StructureToPtr używa tej metody, aby zapobiec wyciekom pamięci podczas ponownego wykorzystania pamięci zajmowanej przez strukturę.

DestroyStructure wywołuje funkcję COM SysFreeString , która z kolei zwalnia przydzielony ciąg.

Oprócz DestroyStructureMarshal klasy udostępnia dwie inne metody cofania pamięci: FreeCoTaskMem i FreeHGlobal.

Zobacz też

Dotyczy

DestroyStructure<T>(IntPtr)

Źródło:
Marshal.cs
Źródło:
Marshal.cs
Źródło:
Marshal.cs

Zwalnia wszystkie podstruktury określonego typu, do którego wskazuje określony niezarządzany blok pamięci.

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)

Parametry typu

T

Typ sformatowanej struktury. Zapewnia to informacje o układzie niezbędne do usunięcia buforu w parametrze ptr .

Parametry

ptr
IntPtr

nativeint

Wskaźnik do niezarządzanego bloku pamięci.

Atrybuty

Wyjątki

T ma układ automatyczny. Zamiast tego należy użyć sekwencyjnego lub jawnego.

Uwagi

Tej metody można użyć do zwolnienia pól typu odwołania, takich jak ciągi, struktury niezarządzanej. W przeciwieństwie do jego pól struktura może być typem wartości lub typem odwołania. Struktury typów wartości, które zawierają pola typu wartości (wszystkie blittable) nie mają odwołań, których pamięć musi zostać zwolniona. Metoda Marshal.StructureToPtr używa tej metody, aby zapobiec wyciekom pamięci podczas ponownego wykorzystania pamięci zajmowanej przez strukturę.

DestroyStructure wywołuje funkcję COM SysFreeString , która z kolei zwalnia przydzielony ciąg.

Dotyczy