Marshal.DestroyStructure Méthode

Définition

Surcharges

DestroyStructure(IntPtr, Type)
Obsolète.

Libère toutes les sous-structures vers lesquelles pointe le bloc de mémoire non managée spécifié.

DestroyStructure<T>(IntPtr)

Libère toutes les sous-structures d'un type spécifié vers lesquelles pointe le bloc de mémoire non managé spécifié.

DestroyStructure(IntPtr, Type)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.CoreCLR.cs

Attention

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

Libère toutes les sous-structures vers lesquelles pointe le bloc de mémoire non managée spécifié.

C#
[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);
C#
public static void DestroyStructure(IntPtr ptr, Type structuretype);
C#
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
C#
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);

Paramètres

ptr
IntPtr

Pointeur vers un bloc de mémoire non managée.

structuretype
Type

Type d'une classe mise en forme. Ceci fournit les informations relatives à la disposition nécessaires pour supprimer la mémoire tampon dans le paramètre ptr.

Attributs

Exceptions

structureType possède une disposition automatique. Optez plutôt pour séquentiel ou explicite.

Remarques

Vous pouvez utiliser cette méthode pour libérer des champs de type référence, tels que des chaînes, d’une structure non managée. Contrairement à ses champs, une structure peut être un type valeur ou un type référence. Les structures de type valeur qui contiennent des champs de type valeur (tous blittables) n’ont aucune référence dont la mémoire doit être libérée. La Marshal.StructureToPtr méthode utilise cette méthode pour éviter les fuites de mémoire lors de la réutilisation de la mémoire occupée par une structure.

DestroyStructure appelle la fonction COM SysFreeString , qui libère à son tour une chaîne allouée.

En plus de DestroyStructure, la Marshal classe fournit deux autres méthodes de répartition de la mémoire : FreeCoTaskMem et FreeHGlobal.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions (Obsolète)
.NET Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 (Core 1.0)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 2.0, 2.1 (1.2, 1.3, 1.4, 1.5, 1.6)
UWP (10.0)

DestroyStructure<T>(IntPtr)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Libère toutes les sous-structures d'un type spécifié vers lesquelles pointe le bloc de mémoire non managé spécifié.

C#
[System.Security.SecurityCritical]
public static void DestroyStructure<T>(IntPtr ptr);
C#
public static void DestroyStructure<T>(IntPtr ptr);

Paramètres de type

T

Type de la structure mise en forme. Ceci fournit les informations relatives à la disposition nécessaires pour supprimer la mémoire tampon dans le paramètre ptr.

Paramètres

ptr
IntPtr

Pointeur vers un bloc de mémoire non managée.

Attributs

Exceptions

T possède une disposition automatique. Optez plutôt pour séquentiel ou explicite.

Remarques

Vous pouvez utiliser cette méthode pour libérer des champs de type de référence, tels que des chaînes, d’une structure non managée. Contrairement à ses champs, une structure peut être un type valeur ou un type référence. Les structures de type valeur qui contiennent des champs de type valeur (tous blittables) n’ont aucune référence dont la mémoire doit être libérée. La Marshal.StructureToPtr méthode utilise cette méthode pour éviter les fuites de mémoire lors de la réutilisation de la mémoire occupée par une structure.

DestroyStructure appelle la fonction COM SysFreeString , qui libère à son tour une chaîne allouée.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0