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
| Nazwa | Opis |
|---|---|
| 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.CoreCLR.cs
- Źródło:
- Marshal.CoreCLR.cs
- Źródło:
- Marshal.cs
- Źródło:
- Marshal.cs
- Źródło:
- Marshal.CoreCLR.cs
Uwaga
DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr).
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).")]
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")]
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).")>]
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")>]
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 użyj 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 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 użycia pamięci zajmowanej przez strukturę.
DestroyStructure wywołuje funkcję COM SysFreeString , która z kolei zwalnia przydzielony ciąg.
Oprócz DestroyStructureMarshal klasy 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
- Ź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 użyj 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 odwołania. 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.