Evaluar y enviar comentarios
MSDN
MSDN Library
 DestroyStructure (Método)
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Marshal.DestroyStructure (Método)

Libera todas las subestructuras a las que apunta el bloque de memoria no administrada especificado.

Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)

Visual Basic (Declaración)
<ComVisibleAttribute(True)> _
Public Shared Sub DestroyStructure ( _
    ptr As IntPtr, _
    structuretype As Type _
)
Visual Basic (Uso)
Dim ptr As IntPtr
Dim structuretype As Type

Marshal.DestroyStructure(ptr, structuretype)
C#
[ComVisibleAttribute(true)] 
public static void DestroyStructure (
    IntPtr ptr,
    Type structuretype
)
C++
[ComVisibleAttribute(true)] 
public:
static void DestroyStructure (
    IntPtr ptr, 
    Type^ structuretype
)
J#
/** @attribute ComVisibleAttribute(true) */ 
public static void DestroyStructure (
    IntPtr ptr, 
    Type structuretype
)
JScript
ComVisibleAttribute(true) 
public static function DestroyStructure (
    ptr : IntPtr, 
    structuretype : Type
)

Parámetros

ptr

Puntero a un bloque de memoria no administrado.

structuretype

Tipo de una clase con formato. Proporciona la información de diseño necesaria para eliminar el búfer del parámetro ptr.

Tipo de excepciónCondición

ArgumentException

structureType tiene un diseño automático. Utilice, en su lugar, un diseño secuencial o explícito.

Puede utilizar este método para liberar los campos de tipo de referencia, como las cadenas, de una estructura no administrada. A diferencia de sus campos, una estructura puede ser un tipo de valor o un tipo de referencia. Las estructuras de tipo de valor que contienen campos de tipo de valor (todos ellos representables como bits/bytes) no tienen referencias cuya memoria deba liberarse. StructureToPtr utiliza este método para evitar pérdidas de memoria cuando se reutiliza la memoria ocupada por una estructura.

DestroyStructure llama al método SysFreeString de la API de COM que, a su vez, libera una cadena asignada. Para obtener más información sobre SysFreeString, vea MSDN Library.

Además de DestroyStructure, la clase Marshal proporciona otros dos métodos de desasignación de memoria: Marshal.FreeCoTaskMem y Marshal.FreeHGlobal.

NotaNota

Este método utiliza SecurityAction.LinkDemand para evitar que se le llame desde código que no sea de confianza; sólo el llamador inmediato debe disponer del permiso SecurityPermissionAttribute.UnmanagedCode. Si se puede llamar al código desde código de confianza parcial, no pase ninguna entrada de usuario a los métodos de la clase Marshal sin validación. Para conocer las limitaciones importantes que existen a la hora de utilizar el miembro LinkDemand, vea Demand frente a LinkDemand.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker