Marshal.DestroyStructure Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ć sekwencyjnych lub jawnych.
Uwagi
Za pomocą tej metody można zwolnić pola typu odwołania, takie jak ciągi, struktury niezarządzanej. W przeciwieństwie do pól, struktura może być typem wartości lub typem referencyjnym. Struktury typu wartości, które zawierają pola typu wartości (wszystkie tabele usterek) nie mają odwołań, których pamięć musi zostać zwolniona. Metoda Marshal.StructureToPtr używa tej metody, aby zapobiec wyciekom pamięci podczas ponownego użycia pamięci zajmowanej przez strukturę.
DestroyStructure wywołuje funkcję COM SysFreeString , która z kolei zwalnia przydzielony ciąg.
Oprócz DestroyStructureklasy Marshal klasa udostępnia dwie inne metody cofania przydziału 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ć sekwencyjnych lub jawnych.
Uwagi
Za pomocą tej metody można zwolnić pola typu odwołania, takie jak ciągi, struktury niezarządzanej. W przeciwieństwie do pól, struktura może być typem wartości lub typem referencyjnym. Struktury typów wartości zawierające 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 użycia pamięci zajmowanej przez strukturę.
DestroyStructure wywołuje funkcję COM SysFreeString , która z kolei zwalnia przydzielony ciąg.