Marshal.PtrToStructure 메서드

정의

관리되지 않는 메모리 블록에서 관리되는 개체로 데이터를 마샬링합니다.

오버로드

Name Description
PtrToStructure(IntPtr, Object)
사용되지 않음.

관리되지 않는 메모리 블록에서 관리되는 개체로 데이터를 마샬링합니다.

PtrToStructure(IntPtr, Type)
사용되지 않음.

관리되지 않는 메모리 블록에서 지정된 형식의 새로 할당된 관리되는 개체로 데이터를 마샬링합니다.

PtrToStructure<T>(IntPtr)

관리되지 않는 메모리 블록에서 제네릭 형식 매개 변수로 지정된 형식의 새로 할당된 관리 개체로 데이터를 마샬링합니다.

PtrToStructure<T>(IntPtr, T)

관리되지 않는 메모리 블록에서 지정된 형식의 관리되는 개체로 데이터를 마샬링합니다.

PtrToStructure(IntPtr, Object)

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

주의

PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512

관리되지 않는 메모리 블록에서 관리되는 개체로 데이터를 마샬링합니다.

public:
 static void PtrToStructure(IntPtr ptr, System::Object ^ structure);
[System.Obsolete("PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512")]
[System.Security.SecurityCritical]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static void PtrToStructure(IntPtr ptr, object structure);
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Security.SecurityCritical]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Runtime.InteropServices.ComVisible(true)]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void PtrToStructure(IntPtr ptr, object structure);
[<System.Obsolete("PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512")>]
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member PtrToStructure : nativeint * obj -> unit
static member PtrToStructure : nativeint * obj -> unit
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * obj -> unit
Public Shared Sub PtrToStructure (ptr As IntPtr, structure As Object)

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 메모리 블록에 대한 포인터입니다.

structure
Object

데이터를 복사할 개체입니다. 형식이 지정된 클래스의 인스턴스여야 합니다.

특성

예외

구조체 레이아웃은 순차적이거나 명시적이지 않습니다.

-또는-

구조체는 boxed 값 형식입니다.

설명

PtrToStructure 는 구조체 매개 변수가 값으로 표현될 때 COM interop 및 플랫폼 호출에 System.IntPtr 필요한 경우가 많습니다. 값 형식에는 이 오버로드 메서드를 사용할 수 없습니다. 매개 변수가 ptrIntPtr.Zeronull 같으면 반환됩니다.

적용 대상

PtrToStructure(IntPtr, Type)

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

주의

PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513

관리되지 않는 메모리 블록에서 지정된 형식의 새로 할당된 관리되는 개체로 데이터를 마샬링합니다.

public:
 static System::Object ^ PtrToStructure(IntPtr ptr, Type ^ structureType);
[System.Obsolete("PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513")]
[System.Security.SecurityCritical]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static object? PtrToStructure(IntPtr ptr, Type structureType);
public static object? PtrToStructure(IntPtr ptr, Type structureType);
[System.Security.SecurityCritical]
public static object PtrToStructure(IntPtr ptr, Type structureType);
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Runtime.InteropServices.ComVisible(true)]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[<System.Obsolete("PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513")>]
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member PtrToStructure : nativeint * Type -> obj
static member PtrToStructure : nativeint * Type -> obj
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * Type -> obj
Public Shared Function PtrToStructure (ptr As IntPtr, structureType As Type) As Object

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 메모리 블록에 대한 포인터입니다.

structureType
Type

만들 개체의 형식입니다. 이 개체는 형식이 지정된 클래스 또는 구조를 나타내야 합니다.

반품

매개 변수가 가리키는 데이터를 포함하는 관리되는 개체입니다 ptr .

특성

예외

structureType 매개 변수 레이아웃이 순차적이거나 명시적이지 않습니다.

-또는-

structureType 매개 변수는 제네릭 형식 정의입니다.

structureTypenull입니다.

지정된 클래스에 structureType 액세스 가능한 매개 변수가 없는 생성자가 없습니다.

설명

PtrToStructure 는 구조체 매개 변수가 값으로 표현될 때 COM interop 및 플랫폼 호출에 System.IntPtr 필요한 경우가 많습니다. 값 형식을 이 오버로드 메서드에 전달할 수 있습니다. 이 경우 반환된 개체는 boxed 인스턴스입니다. 매개 변수가 ptrIntPtr.Zeronull 같으면 반환됩니다.

추가 정보

적용 대상

PtrToStructure<T>(IntPtr)

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

관리되지 않는 메모리 블록에서 제네릭 형식 매개 변수로 지정된 형식의 새로 할당된 관리 개체로 데이터를 마샬링합니다.

public:
generic <typename T>
 static T PtrToStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static T PtrToStructure<T>(IntPtr ptr);
public static T? PtrToStructure<T>(IntPtr ptr);
public static T PtrToStructure<T>(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint -> 'T
static member PtrToStructure : nativeint -> 'T
Public Shared Function PtrToStructure(Of T) (ptr As IntPtr) As T

형식 매개 변수

T

데이터를 복사할 개체의 형식입니다. 형식이 지정된 클래스 또는 구조체여야 합니다.

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 메모리 블록에 대한 포인터입니다.

반품

T

매개 변수가 가리키는 데이터를 포함하는 관리되는 ptr 개체입니다.

특성

예외

레이아웃 T 이 순차적이거나 명시적이지 않습니다.

지정된 클래스에 T 액세스 가능한 매개 변수가 없는 생성자가 없습니다.

설명

PtrToStructure<T>(IntPtr) 는 구조체 매개 변수가 값으로 System.IntPtr 표현될 때 COM interop 및 플랫폼 호출에 필요한 경우가 많습니다. 값 형식을 이 메서드 오버로드에 전달할 수 있습니다. 매개 변수가 ptrIntPtr.Zero 같고 T 참조 형식 null 이면 반환됩니다. 값 형식이 같 ptr 고 값 형식이면 IntPtr.Zero throw TNullReferenceException 됩니다.

적용 대상

PtrToStructure<T>(IntPtr, T)

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

관리되지 않는 메모리 블록에서 지정된 형식의 관리되는 개체로 데이터를 마샬링합니다.

public:
generic <typename T>
 static void PtrToStructure(IntPtr ptr, T structure);
[System.Security.SecurityCritical]
public static void PtrToStructure<T>(IntPtr ptr, T structure);
public static void PtrToStructure<T>(IntPtr ptr, T structure);
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * 'T -> unit
static member PtrToStructure : nativeint * 'T -> unit
Public Shared Sub PtrToStructure(Of T) (ptr As IntPtr, structure As T)

형식 매개 변수

T

structure의 형식입니다. 형식이 지정된 클래스여야 합니다.

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 메모리 블록에 대한 포인터입니다.

structure
T

데이터를 복사할 개체입니다.

특성

예외

구조체 레이아웃은 순차적이거나 명시적이지 않습니다.

설명

PtrToStructure<T>(IntPtr, T) 는 구조체 매개 변수가 값으로 IntPtr 표현될 때 COM interop 및 플랫폼 호출에 필요한 경우가 많습니다. 값 형식에는 이 메서드 오버로드를 사용할 수 없습니다. 매개 변수가 ptrIntPtr.Zero 같고 T 참조 형식 null 이면 반환됩니다. 값 형식이 같 ptr 고 값 형식이면 IntPtr.Zero throw TNullReferenceException 됩니다.

적용 대상