Marshal.DestroyStructure 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
DestroyStructure(IntPtr, Type) |
사용되지 않음.
지정된 관리되지 않는 메모리 블록이 가리키는 모든 하위 구조체를 해제합니다. |
DestroyStructure<T>(IntPtr) |
지정된 관리되지 않는 메모리 블록이 가리키는 지정된 형식의 모든 하위 구조체를 해제합니다. |
DestroyStructure(IntPtr, Type)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.CoreCLR.cs
주의
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
지정된 관리되지 않는 메모리 블록이 가리키는 모든 하위 구조체를 해제합니다.
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)
매개 변수
- ptr
-
IntPtr
nativeint
관리되지 않는 메모리 블록에 대한 포인터입니다.
- structuretype
- Type
형식이 지정된 클래스의 형식으로,
ptr
매개 변수에 있는 버퍼를 삭제하는 데 필요한 레이아웃 정보를 제공합니다.
- 특성
예외
structureType
에 Auto 레이아웃이 지정된 경우. 대신 Sequential 또는 Explicit 레이아웃을 사용합니다.
설명
이 메서드를 사용하여 관리되지 않는 구조체의 참조 형식 필드(예: 문자열)를 해제할 수 있습니다. 필드와 달리 구조체는 값 형식 또는 참조 형식일 수 있습니다. 값 형식 필드(모든 blittable)를 포함하는 값 형식 구조에는 메모리를 해제해야 하는 참조가 없습니다. 메서드는 Marshal.StructureToPtr 이 메서드를 사용하여 구조체가 차지하는 메모리를 다시 사용할 때 메모리 누수 방지를 수행합니다.
DestroyStructure 는 COM SysFreeString 함수를 호출하여 할당된 문자열을 해제합니다.
외에도 DestroyStructure클래스는 Marshal 및 FreeHGlobal의 두 가지 다른 메모리 할당 취소 메서드 FreeCoTaskMem 를 제공합니다.
추가 정보
적용 대상
DestroyStructure<T>(IntPtr)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
지정된 관리되지 않는 메모리 블록이 가리키는 지정된 형식의 모든 하위 구조체를 해제합니다.
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)
형식 매개 변수
- T
형식이 지정된 구조체의 형식입니다.
ptr
매개 변수에 있는 버퍼를 삭제하는 데 필요한 레이아웃 정보를 제공합니다.
매개 변수
- ptr
-
IntPtr
nativeint
관리되지 않는 메모리 블록에 대한 포인터입니다.
- 특성
예외
T
에 Auto 레이아웃이 지정된 경우. 대신 Sequential 또는 Explicit 레이아웃을 사용합니다.
설명
이 메서드를 사용하여 관리되지 않는 구조체의 문자열과 같은 참조 형식 필드를 해제할 수 있습니다. 필드와 달리 구조체는 값 형식 또는 참조 형식일 수 있습니다. 값 형식 필드(모든 Blittable)를 포함하는 값 형식 구조에는 메모리를 해제해야 하는 참조가 없습니다. 메서드는 Marshal.StructureToPtr 이 메서드를 사용하여 구조체가 차지하는 메모리를 다시 사용할 때 메모리 누수 방지를 수행합니다.
DestroyStructure 는 COM SysFreeString 함수를 호출하여 할당된 문자열을 해제합니다.
적용 대상
.NET