Marshal.PtrToStructure Método

Definição

Faz o escalão de dados de um bloco de memória não gerido para um objeto gerido.

Sobrecargas

Name Description
PtrToStructure(IntPtr, Object)
Obsoleto.

Faz o escalão de dados de um bloco de memória não gerido para um objeto gerido.

PtrToStructure(IntPtr, Type)
Obsoleto.

Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido recém-alocado do tipo especificado.

PtrToStructure<T>(IntPtr)

Organiza dados de um bloco não gerido de memória para um objeto gerido recém-alocado do tipo especificado por um parâmetro genérico de tipo.

PtrToStructure<T>(IntPtr, T)

Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido do tipo especificado.

PtrToStructure(IntPtr, Object)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Atenção

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

Faz o escalão de dados de um bloco de memória não gerido para um objeto gerido.

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)

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

structure
Object

O objeto para o qual os dados devem ser copiados. Isto deve ser uma instância de uma classe formatada.

Atributos

Exceções

O layout da estrutura não é sequencial nem explícito.

-ou-

Estrutura é um tipo de valor em caixa.

Observações

PtrToStructure é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como um System.IntPtr valor. Não podes usar este método de sobrecarga com tipos de valor. Se o ptr parâmetro for IntPtr.Zeroigual a , null será devolvido.

Aplica-se a

PtrToStructure(IntPtr, Type)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Atenção

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

Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido recém-alocado do tipo especificado.

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

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

structureType
Type

O tipo de objeto a ser criado. Este objeto deve representar uma classe formatada ou uma estrutura.

Devoluções

Um objeto gerido contendo os dados apontados pelo ptr parâmetro.

Atributos

Exceções

A structureType disposição dos parâmetros não é sequencial nem explícita.

-ou-

O structureType parâmetro é uma definição de tipo genérica.

structureType é null.

A classe especificada por structureType não possui um construtor sem parâmetros acessível.

Observações

PtrToStructure é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como um System.IntPtr valor. Podes passar um tipo de valor a este método de sobrecarga. Neste caso, o objeto devolvido é uma instância em caixa. Se o ptr parâmetro for IntPtr.Zeroigual a , null será devolvido.

Ver também

Aplica-se a

PtrToStructure<T>(IntPtr)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Organiza dados de um bloco não gerido de memória para um objeto gerido recém-alocado do tipo especificado por um parâmetro genérico de tipo.

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

Parâmetros de Tipo Genérico

T

O tipo de objeto para o qual os dados devem ser copiados. Isto deve ser uma aula formatada ou uma estrutura.

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

Devoluções

T

Um objeto gerido que contém os dados para os quais o ptr parâmetro aponta.

Atributos

Exceções

A disposição de T não é sequencial nem explícita.

A classe especificada por T não possui um construtor sem parâmetros acessível.

Observações

PtrToStructure<T>(IntPtr) é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como System.IntPtr valores. Podes passar um tipo de valor a esta sobrecarga de método. Se o ptr parâmetro for IntPtr.Zero igual a e T for um tipo de referência, null é devolvido. Se ptr for IntPtr.Zero igual a e T for um tipo de valor, a NullReferenceException é lançado.

Aplica-se a

PtrToStructure<T>(IntPtr, T)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido do tipo especificado.

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)

Parâmetros de Tipo Genérico

T

O tipo de structure. Esta tem de ser uma aula formatada.

Parâmetros

ptr
IntPtr

nativeint

Um apontador para um bloco de memória não gerido.

structure
T

O objeto para o qual os dados devem ser copiados.

Atributos

Exceções

O layout da estrutura não é sequencial nem explícito.

Observações

PtrToStructure<T>(IntPtr, T) é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como IntPtr valores. Não podes usar esta sobrecarga de métodos com tipos de valor. Se o ptr parâmetro for IntPtr.Zero igual a e T for um tipo de referência, null é devolvido. Se ptr for IntPtr.Zero igual a e T for um tipo de valor, a NullReferenceException é lançado.

Aplica-se a