Marshal Classe

Definição

Fornece um conjunto de métodos para alocar a memória não gerenciada, copiando os blocos de memória não gerenciada e convertendo tipos gerenciados em não gerenciados, bem como outros diversos métodos usados ao interagir com código não gerenciado.Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code.

public ref class Marshal abstract sealed
public static class Marshal
type Marshal = class
Public Class Marshal
Herança
Marshal

Exemplos

O exemplo a seguir mostra como usar vários métodos definidos pela classe Marshal.The following example shows how to use various methods defined by the Marshal class.

using namespace System;
using namespace System::Runtime::InteropServices;

public value struct Point
{
public:
    property int X;
    property int Y;
};
extern bool CloseHandle(IntPtr h);

int main()
{
    // Demonstrate the use of public static fields of the Marshal
    // class.
    Console::WriteLine(
        "SystemDefaultCharSize={0},SystemMaxDBCSCharSize={1}",
        Marshal::SystemDefaultCharSize,
        Marshal::SystemMaxDBCSCharSize);

    // Demonstrate the use of the SizeOf method of the Marshal
    // class.
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(Point::typeid));
    Point point;
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(point));

    // Demonstrate how to call GlobalAlloc and 
    // GlobalFree using the Marshal class.
    IntPtr hglobal = Marshal::AllocHGlobal(100);
    Marshal::FreeHGlobal(hglobal);

    // Demonstrate how to use the Marshal class to get the Win32
    // error code when a Win32 method fails.
    bool isCloseHandleSuccess = CloseHandle(IntPtr(-1));
    if (!isCloseHandleSuccess)
    {
        Console::WriteLine(
            "CloseHandle call failed with an error code of: {0}",
            Marshal::GetLastWin32Error());
    }
};

// This is a platform invoke prototype. SetLastError is true,
// which allows the GetLastWin32Error method of the Marshal class
// to work correctly.    
[DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
extern bool CloseHandle(IntPtr h);

// This code produces the following output.
// 
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}


public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", 
            Marshal.SizeOf(typeof(Point)));
        Point p = new Point();
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(p));
        
        // Demonstrate how to call GlobalAlloc and 
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error 
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", 
                Marshal.GetLastWin32Error());
        }  
    }

    // This is a platform invoke prototype. SetLastError is true, which allows 
    // the GetLastWin32Error method of the Marshal class to work correctly.    
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);
    
}

// This code produces the following output.
// 
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Security.Permissions



Public Structure Point
    Public x, y As Int32
End Structure



Public NotInheritable Class App

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main()
        ' Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}", Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize)
        ' Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
        Dim p As New Point()
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
        ' Demonstrate how to call GlobalAlloc and 
        ' GlobalFree using the Marshal class.
        Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
        Marshal.FreeHGlobal(hglobal)
        ' Demonstrate how to use the Marshal class to get the Win32 error 
        ' code when a Win32 method fails.
        Dim f As [Boolean] = CloseHandle(New IntPtr(-1))
        If Not f Then
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", Marshal.GetLastWin32Error())
        End If

    End Sub


    ' This is a platform invoke prototype. SetLastError is true, which allows 
    ' the GetLastWin32Error method of the Marshal class to work correctly.    
    <DllImport("Kernel32", ExactSpelling:=True, SetLastError:=True)> _
    Shared Function CloseHandle(ByVal h As IntPtr) As [Boolean]

    End Function
End Class


' This code produces the following output.
' 
' SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
' Number of bytes needed by a Point object: 8
' Number of bytes needed by a Point object: 8
' CloseHandle call failed with an error code of: 6

Comentários

Os métodos de static definidos na classe Marshal são essenciais para trabalhar com código não gerenciado.The static methods defined on the Marshal class are essential to working with unmanaged code. A maioria dos métodos definidos nessa classe normalmente são usados por desenvolvedores que desejam fornecer uma ponte entre os modelos de programação gerenciados e não gerenciados.Most methods defined in this class are typically used by developers who want to provide a bridge between the managed and unmanaged programming models. Por exemplo, o método StringToHGlobalAnsi copia caracteres ANSI de uma cadeia de caracteres especificada (no heap gerenciado) para um buffer no heap não gerenciado.For example, the StringToHGlobalAnsi method copies ANSI characters from a specified string (in the managed heap) to a buffer in the unmanaged heap. Ele também aloca o heap de destino do tamanho correto.It also allocates the target heap of the right size.

O Common Language Runtime fornece recursos de marshaling específicos.The common language runtime provides specific marshaling capabilities. Para obter detalhes sobre o comportamento de marshaling, consulte marshaling interop.For details on marshaling behavior, see Interop Marshaling.

Os métodos Read e Write na classe Marshal dão suporte a acesso alinhado e não alinhado.The Read and Write methods in the Marshal class support both aligned and unaligned access.

Campos

SystemDefaultCharSize

Representa o tamanho de caractere padrão do sistema; o padrão é 2 para sistemas Unicode e 1 para sistemas ANSI.Represents the default character size on the system; the default is 2 for Unicode systems and 1 for ANSI systems. Este campo é somente leitura.This field is read-only.

SystemMaxDBCSCharSize

Representa o tamanho máximo de um tamanho DBCS (conjunto de caracteres de byte duplo), em bytes, para o sistema operacional atual.Represents the maximum size of a double byte character set (DBCS) size, in bytes, for the current operating system. Este campo é somente leitura.This field is read-only.

Métodos

AddRef(IntPtr)

Incrementa a contagem de referência na interface especificada.Increments the reference count on the specified interface.

AllocCoTaskMem(Int32)

Aloca um bloco de memória do tamanho especificado do alocador de memória de tarefas COM.Allocates a block of memory of specified size from the COM task memory allocator.

AllocHGlobal(Int32)

Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

Aloca memória de memória não gerenciada do processo usando o ponteiro para o número de bytes especificado.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AreComObjectsAvailableForCleanup()

Indica se RCWs (Runtime Callable Wrappers) de qualquer contexto estão disponíveis para limpeza.Indicates whether runtime callable wrappers (RCWs) from any context are available for cleanup.

BindToMoniker(String)

Obtém um ponteiro de interface identificado pelo moniker especificado.Gets an interface pointer identified by the specified moniker.

BufferToBSTR(Array, Int32)
ChangeWrapperHandleStrength(Object, Boolean)

Altera a intensidade do identificador CCW (COM Callable Wrapper) de um objeto.Changes the strength of an object's COM Callable Wrapper (CCW) handle.

CleanupUnusedObjectsInCurrentContext()

Notifica o tempo de execução para limpar todos os RCWs (Runtime Callable Wrappers) alocados no contexto atual.Notifies the runtime to clean up all Runtime Callable Wrappers (RCWs) allocated in the current context.

Copy(Byte[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de inteiro sem sinal unidimensional de 8 bits para um ponteiro de memória não gerenciado.Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer.

Copy(Char[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de caracteres gerenciada unidimensional para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed character array to an unmanaged memory pointer.

Copy(Double[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de número de ponto flutuante de precisão dupla unidimensional gerenciada para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed double-precision floating-point number array to an unmanaged memory pointer.

Copy(Int16[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de inteiro com sinal unidimensional de 16 bits para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer.

Copy(Int32[], Int32, IntPtr, Int32)

Copia os dados de uma matriz unidimensional de inteiro com sinal de 32 bits para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer.

Copy(Int64[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de inteiro com sinal unidimensional de 64 bits para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed 64-bit signed integer array to an unmanaged memory pointer.

Copy(IntPtr, Byte[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada para uma matriz gerenciada de inteiro sem sinal de 8 bits.Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array.

Copy(IntPtr, Char[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada de caracteres.Copies data from an unmanaged memory pointer to a managed character array.

Copy(IntPtr, Double[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada para uma matriz de número de ponto flutuante de precisão dupla gerenciada.Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array.

Copy(IntPtr, Int16[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada de inteiro com sinal de 16 bits.Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array.

Copy(IntPtr, Int32[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciado em uma matriz gerenciada de inteiro com sinal de 32 bits.Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array.

Copy(IntPtr, Int64[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada de inteiro com sinal de 64 bits.Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array.

Copy(IntPtr, IntPtr[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada IntPtr.Copies data from an unmanaged memory pointer to a managed IntPtr array.

Copy(IntPtr, Single[], Int32, Int32)

Copia os dados de um ponteiro de memória não gerenciada para uma matriz de número de ponto flutuante de precisão simples gerenciada.Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array.

Copy(IntPtr[], Int32, IntPtr, Int32)

Copia os dados de uma matriz gerenciada unidimensional IntPtr para um ponteiro de memória não gerenciado.Copies data from a one-dimensional, managed IntPtr array to an unmanaged memory pointer.

Copy(Single[], Int32, IntPtr, Int32)

Copia os dados de uma matriz de número de ponto flutuante de precisão simples unidimensional gerenciada para um ponteiro de memória não gerenciada.Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer.

CreateAggregatedObject(IntPtr, Object)

Agrega um objeto gerenciado com o objeto COM especificado.Aggregates a managed object with the specified COM object.

CreateAggregatedObject<T>(IntPtr, T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Agrega um objeto gerenciado do tipo especificado com o objeto COM especificado.Aggregates a managed object of the specified type with the specified COM object.

CreateWrapperOfType(Object, Type)

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType<T,TWrapper>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Encapsula o objeto COM indicado em um objeto do tipo especificado.Wraps the specified COM object in an object of the specified type.

DestroyStructure(IntPtr, Type)

Libera todas as subestruturas para as quais o bloco de memória não gerenciada especificado aponta.Frees all substructures that the specified unmanaged memory block points to.

DestroyStructure<T>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Libera todas as subestruturas de um tipo especificado para as quais o bloco de memória não gerenciado especificado aponta.Frees all substructures of a specified type that the specified unmanaged memory block points to.

FinalReleaseComObject(Object)

Libera todas as referências a um RCW (Runtime Callable Wrapper) definindo sua contagem de referência como 0.Releases all references to a Runtime Callable Wrapper (RCW) by setting its reference count to 0.

FreeBSTR(IntPtr)

Libera um BSTR usando a função SysFreeString do COM.Frees a BSTR using the COM SysFreeString function.

FreeCoTaskMem(IntPtr)

Libera um bloco de memória alocado pelo alocador de memória de tarefa COM não gerenciado.Frees a block of memory allocated by the unmanaged COM task memory allocator.

FreeHGlobal(IntPtr)

Libera memória anteriormente alocada da memória não gerenciada do processo.Frees memory previously allocated from the unmanaged memory of the process.

GenerateGuidForType(Type)

Retorna o GUID (identificador global exclusivo) para o tipo especificado ou gera um GUID usando o algoritmo usado pelo Exportador da Biblioteca de Tipos (Tlbexp.exe).Returns the globally unique identifier (GUID) for the specified type, or generates a GUID using the algorithm used by the Type Library Exporter (Tlbexp.exe).

GenerateProgIdForType(Type)

Retorna um ProgID (identificador programático) para o tipo especificado.Returns a programmatic identifier (ProgID) for the specified type.

GetActiveObject(String)

Obtém uma instância em execução do objeto especificado do ROT (tabela de objetos em execução).Obtains a running instance of the specified object from the running object table (ROT).

GetComInterfaceForObject(Object, Type)

Retorna um ponteiro para uma interface IUnknown que representa a interface especificada no objeto especificado.Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. O acesso à interface de consulta personalizada é habilitada por padrão.Custom query interface access is enabled by default.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Retorna um ponteiro para uma interface IUnknown que representa a interface especificada no objeto especificado.Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. O acesso à interface de consulta personalizada é controlado pelo modo de personalização especificado.Custom query interface access is controlled by the specified customization mode.

GetComInterfaceForObject<T,TInterface>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions] Retorna um ponteiro para uma interface IUnknown que representa a interface especificada em um objeto do tipo especificado.Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. O acesso à interface de consulta personalizada é habilitada por padrão.Custom query interface access is enabled by default.

GetComInterfaceForObjectInContext(Object, Type)

Retorna um ponteiro de interface que representa a interface especificada para um objeto, se o chamador estiver no mesmo contexto que o objeto.Returns an interface pointer that represents the specified interface for an object, if the caller is in the same context as that object.

GetComObjectData(Object, Object)

Recupera os dados que são referenciados pela chave especificada do objeto COM especificado.Retrieves data that is referenced by the specified key from the specified COM object.

GetComSlotForMethodInfo(MemberInfo)

Recupera o slot de tabela de função virtual (tabela v ou VTBL) para um tipo MemberInfo especificado quando esse tipo é exposto ao COM.Retrieves the virtual function table (v-table or VTBL) slot for a specified MemberInfo type when that type is exposed to COM.

GetDelegateForFunctionPointer(IntPtr, Type)

Converte um ponteiro de função não gerenciada em um delegado.Converts an unmanaged function pointer to a delegate.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Converte um ponteiro de função não gerenciada em um delegado de um tipo especificado.Converts an unmanaged function pointer to a delegate of a specified type.

GetEndComSlot(Type)

Recupera o último slot na tabela de função virtual (v-table ou VTBL) de um tipo quando exposto ao COM.Retrieves the last slot in the virtual function table (v-table or VTBL) of a type when exposed to COM.

GetExceptionCode()

Recupera um código que identifica o tipo da exceção ocorrido.Retrieves a code that identifies the type of the exception that occurred.

GetExceptionForHR(Int32)

Converte o código de erro HRESULT especificado em um objeto Exception correspondente.Converts the specified HRESULT error code to a corresponding Exception object.

GetExceptionForHR(Int32, IntPtr)

Converte o código de erro HRESULT especificado em um objeto Exception correspondente, com informações de erro adicionais passadas em uma interface IErrorInfo para o objeto de exceção.Converts the specified HRESULT error code to a corresponding Exception object, with additional error information passed in an IErrorInfo interface for the exception object.

GetExceptionPointers()

Recupera uma descrição independente de computador de uma exceção e as informações sobre o estado que existia para o thread quando ocorreu a exceção.Retrieves a computer-independent description of an exception, and information about the state that existed for the thread when the exception occurred.

GetFunctionPointerForDelegate(Delegate)

Converte um delegado em um ponteiro de função que pode ser chamado do código não gerenciado.Converts a delegate into a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Converte um delegado de um tipo especificado em um ponteiro de função que pode ser chamado do código não gerenciado.Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

GetHINSTANCE(Module)

Retorna o identificador de instância (HINSTANCE) do módulo especificado.Returns the instance handle (HINSTANCE) for the specified module.

GetHRForException(Exception)

Converte a exceção especificada para um HRESULT.Converts the specified exception to an HRESULT.

GetHRForLastWin32Error()

Retorna o HRESULT que corresponde ao último erro incorrido pelo código Win32 executado usando Marshal.Returns the HRESULT corresponding to the last error incurred by Win32 code executed using Marshal.

GetIDispatchForObject(Object)

Retorna uma interface IDispatch de um objeto gerenciado.Returns an IDispatch interface from a managed object.

GetIDispatchForObjectInContext(Object)

Retornará um ponteiro de interface IDispatch de um objeto gerenciado se o chamador estiver no mesmo contexto que o objeto.Returns an IDispatch interface pointer from a managed object, if the caller is in the same context as that object.

GetITypeInfoForType(Type)

Retorna uma interface ITypeInfo de um tipo gerenciado.Returns a ITypeInfo interface from a managed type.

GetIUnknownForObject(Object)

Retorna uma interface IUnknown de um objeto gerenciado.Returns an IUnknown interface from a managed object.

GetIUnknownForObjectInContext(Object)

Retornará uma interface IUnknown de um objeto gerenciado se o chamador estiver no mesmo contexto que o objeto.Returns an IUnknown interface from a managed object, if the caller is in the same context as that object.

GetLastWin32Error()

Retorna o código de erro retornado pela última função não gerenciada chamada com a invocação da plataforma que tem o sinalizador SetLastError definido.Returns the error code returned by the last unmanaged function that was called using platform invoke that has the SetLastError flag set.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)

Obtém um ponteiro para uma função gerada pelo runtime que realiza marshaling de uma chamada de código gerenciado para não gerenciado.Gets a pointer to a runtime-generated function that marshals a call from managed to unmanaged code.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera um objeto MemberInfo para o slot da tabela de função virtual (tabela v ou VTBL) especificado.Retrieves a MemberInfo object for the specified virtual function table (v-table or VTBL) slot.

GetNativeVariantForObject(Object, IntPtr)

Converte um objeto em um COM VARIANT.Converts an object to a COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Converte um objeto de um tipo especificado em uma VARIANTE do COM.Converts an object of a specified type to a COM VARIANT.

GetObjectForIUnknown(IntPtr)

Retorna uma instância de um tipo que representa um objeto COM de um ponteiro para sua interface IUnknown.Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface.

GetObjectForNativeVariant(IntPtr)

Converte um COM VARIANT em um objeto.Converts a COM VARIANT to an object.

GetObjectForNativeVariant<T>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Converte uma VARIANTE do COM em um objeto de um tipo especificado.Converts a COM VARIANT to an object of a specified type.

GetObjectsForNativeVariants(IntPtr, Int32)

Converte uma matriz de VARIANTEs do COM em uma matriz de objetos.Converts an array of COM VARIANTs to an array of objects.

GetObjectsForNativeVariants<T>(IntPtr, Int32)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Converte uma matriz de VARIANTEs do COM em uma matriz de um tipo especificado.Converts an array of COM VARIANTs to an array of a specified type.

GetStartComSlot(Type)

Obtém o primeiro slot na tabela de função virtual (v-table ou VTBL) que contém os métodos definidos pelo usuário.Gets the first slot in the virtual function table (v-table or VTBL) that contains user-defined methods.

GetThreadFromFiberCookie(Int32)

Converte um cookie de fibra na instância Thread correspondente.Converts a fiber cookie into the corresponding Thread instance.

GetTypedObjectForIUnknown(IntPtr, Type)

Retorna um objeto gerenciado de um tipo especificado que representa um objeto COM.Returns a managed object of a specified type that represents a COM object.

GetTypeForITypeInfo(IntPtr)

Converte um objeto ITypeInfo não gerenciado em um objeto gerenciado Type.Converts an unmanaged ITypeInfo object into a managed Type object.

GetTypeFromCLSID(Guid)

Retorna o tipo associado ao CLSID (identificador de classe) especificado.Returns the type associated with the specified class identifier (CLSID).

GetTypeInfoName(ITypeInfo)

Recupera o nome do tipo representado por um objeto ITypeInfo.Retrieves the name of the type represented by an ITypeInfo object.

GetTypeInfoName(UCOMITypeInfo)

Recupera o nome do tipo representado por um objeto ITypeInfo.Retrieves the name of the type represented by an ITypeInfo object.

GetTypeLibGuid(ITypeLib)

Recupera o LIBID (identificador de biblioteca) de uma biblioteca de tipos.Retrieves the library identifier (LIBID) of a type library.

GetTypeLibGuid(UCOMITypeLib)

Recupera o LIBID (identificador de biblioteca) de uma biblioteca de tipos.Retrieves the library identifier (LIBID) of a type library.

GetTypeLibGuidForAssembly(Assembly)

Recupera o LIBID (identificador de biblioteca) que é atribuído a uma biblioteca de tipos quando ela exportada do assembly especificado.Retrieves the library identifier (LIBID) that is assigned to a type library when it was exported from the specified assembly.

GetTypeLibLcid(ITypeLib)

Recupera o LCID de uma biblioteca de tipos.Retrieves the LCID of a type library.

GetTypeLibLcid(UCOMITypeLib)

Recupera o LCID de uma biblioteca de tipos.Retrieves the LCID of a type library.

GetTypeLibName(ITypeLib)

Recupera o nome de uma biblioteca de tipos.Retrieves the name of a type library.

GetTypeLibName(UCOMITypeLib)

Recupera o nome de uma biblioteca de tipos.Retrieves the name of a type library.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Recupera o número de versão de uma biblioteca de tipos que será exportada do assembly especificado.Retrieves the version number of a type library that will be exported from the specified assembly.

GetUniqueObjectForIUnknown(IntPtr)

Cria um único objeto RCW (Runtime Callable Wrapper) para determinada interface IUnknown.Creates a unique Runtime Callable Wrapper (RCW) object for a given IUnknown interface.

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)

Obtém um ponteiro para uma função gerada pelo runtime que realiza marshaling de uma chamada de código não gerenciado para gerenciado.Gets a pointer to a runtime-generated function that marshals a call from unmanaged to managed code.

IsComObject(Object)

Indica se um objeto especificado representa um objeto COM.Indicates whether a specified object represents a COM object.

IsTypeVisibleFromCom(Type)

Indica se um tipo é visível para clientes do COM.Indicates whether a type is visible to COM clients.

NumParamBytes(MethodInfo)

Calcula o número de bytes na memória não gerenciada que são necessários para manter os parâmetros para o método especificado.Calculates the number of bytes in unmanaged memory that are required to hold the parameters for the specified method.

OffsetOf(Type, String)

Retorna o deslocamento de campo do formulário não gerenciado da classe gerenciada.Returns the field offset of the unmanaged form of the managed class.

OffsetOf<T>(String)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Retorna o deslocamento de campo do formulário não gerenciado de uma classe gerenciada especificada.Returns the field offset of the unmanaged form of a specified managed class.

Prelink(MethodInfo)

Executa tarefas de configuração de método de uso único sem chamar o método.Executes one-time method setup tasks without calling the method.

PrelinkAll(Type)

Executa uma verificação de pré-vínculo para todos os métodos em uma classe.Performs a pre-link check for all methods on a class.

PtrToStringAnsi(IntPtr)

Copia todos os caracteres até o primeiro caractere nulo de uma cadeia de caracteres ANSI não gerenciada para um String gerenciado e amplia cada caractere ANSI para Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr, Int32)

Aloca um String gerenciado, copia um número especificado de caracteres de uma cadeia de caracteres ANSI não gerenciada para ele e amplia cada caractere ANSI para Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

PtrToStringAuto(IntPtr)

Aloca um String gerenciado e copia todos os caracteres até o primeiro caractere nulo de uma cadeia de caracteres armazenada na memória não gerenciada para ele.Allocates a managed String and copies all characters up to the first null character from a string stored in unmanaged memory into it.

PtrToStringAuto(IntPtr, Int32)

Aloca um String gerenciado e copia para ele o número especificado de caracteres de uma cadeia de caracteres armazenada na memória não gerenciada.Allocates a managed String and copies the specified number of characters from a string stored in unmanaged memory into it.

PtrToStringBSTR(IntPtr)

Aloca um String gerenciado e copia para ele uma BSTR (cadeia de caracteres binária) armazenada na memória não gerenciada.Allocates a managed String and copies a binary string (BSTR) stored in unmanaged memory into it.

PtrToStringUni(IntPtr)

Aloca uma String gerenciada e copia para ela todos os caracteres até o primeiro caractere nulo de uma cadeia de caracteres Unicode não gerenciada.Allocates a managed String and copies all characters up to the first null character from an unmanaged Unicode string into it.

PtrToStringUni(IntPtr, Int32)

Aloca uma String gerenciada e copia nela um número especificado de caracteres de uma cadeia de caracteres Unicode não gerenciada.Allocates a managed String and copies a specified number of characters from an unmanaged Unicode string into it.

PtrToStringUTF8(IntPtr)
PtrToStringUTF8(IntPtr, Int32)
PtrToStructure(IntPtr, Object)

Realizar o marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado.Marshals data from an unmanaged block of memory to a managed object.

PtrToStructure(IntPtr, Type)

Realiza marshal de dados de um bloco não gerenciado de memória para um objeto gerenciado recém-alocado do tipo especificado.Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type.

PtrToStructure<T>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Realiza marshaling de dados de um bloco não gerenciado de memória para um objeto gerenciado recém-alocado do tipo especificado por um parâmetro de tipo genérico.Marshals data from an unmanaged block of memory to a newly allocated managed object of the type specified by a generic type parameter.

PtrToStructure<T>(IntPtr, T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Realiza marshaling de dados de um bloco não gerenciado de memória para um objeto gerenciado do tipo especificado.Marshals data from an unmanaged block of memory to a managed object of the specified type.

QueryInterface(IntPtr, Guid, IntPtr)

Solicita um ponteiro para uma interface especificada de um objeto COM.Requests a pointer to a specified interface from a COM object.

ReadByte(IntPtr)

Lê um único byte da memória não gerenciada.Reads a single byte from unmanaged memory.

ReadByte(IntPtr, Int32)

Lê um único byte em um determinado deslocamento (ou índice) de memória não gerenciada.Reads a single byte at a given offset (or index) from unmanaged memory.

ReadByte(Object, Int32)

Lê um único byte em um determinado deslocamento (ou índice) de memória não gerenciada.Reads a single byte at a given offset (or index) from unmanaged memory.

ReadInt16(IntPtr)

Lê um inteiro com sinal de 16 bits da memória não gerenciada.Reads a 16-bit signed integer from unmanaged memory.

ReadInt16(IntPtr, Int32)

Lê um inteiro com sinal de 16 bits em um determinado deslocamento da memória não gerenciada.Reads a 16-bit signed integer at a given offset from unmanaged memory.

ReadInt16(Object, Int32)

Lê um inteiro com sinal de 16 bits em um determinado deslocamento da memória não gerenciada.Reads a 16-bit signed integer at a given offset from unmanaged memory.

ReadInt32(IntPtr)

Lê um inteiro com sinal de 32 bits da memória não gerenciada.Reads a 32-bit signed integer from unmanaged memory.

ReadInt32(IntPtr, Int32)

Lê um inteiro com sinal de 32 bits em um deslocamento fornecido na memória não gerenciada.Reads a 32-bit signed integer at a given offset from unmanaged memory.

ReadInt32(Object, Int32)

Lê um inteiro com sinal de 32 bits em um deslocamento fornecido na memória não gerenciada.Reads a 32-bit signed integer at a given offset from unmanaged memory.

ReadInt64(IntPtr)

Lê um inteiro com sinal de 64 bits da memória não gerenciada.Reads a 64-bit signed integer from unmanaged memory.

ReadInt64(IntPtr, Int32)

Lê um inteiro com sinal de 64 bits em um determinado deslocamento da memória não gerenciada.Reads a 64-bit signed integer at a given offset from unmanaged memory.

ReadInt64(Object, Int32)

Lê um inteiro com sinal de 64 bits em um determinado deslocamento da memória não gerenciada.Reads a 64-bit signed integer at a given offset from unmanaged memory.

ReadIntPtr(IntPtr)

Lê um inteiro de tamanho nativo de processador da memória não gerenciada.Reads a processor native-sized integer from unmanaged memory.

ReadIntPtr(IntPtr, Int32)

Lê um inteiro de tamanho nativo de processador em um determinado deslocamento da memória não gerenciada.Reads a processor native sized integer at a given offset from unmanaged memory.

ReadIntPtr(Object, Int32)

Lê um inteiro dimensionado nativo do processador da memória não gerenciada.Reads a processor native sized integer from unmanaged memory.

ReAllocCoTaskMem(IntPtr, Int32)

Redimensiona um bloco de memória alocado anteriormente com AllocCoTaskMem(Int32).Resizes a block of memory previously allocated with AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Redimensiona um bloco de memória alocado anteriormente com AllocHGlobal(IntPtr).Resizes a block of memory previously allocated with AllocHGlobal(IntPtr).

Release(IntPtr)

Diminui a contagem de referência na interface especificada.Decrements the reference count on the specified interface.

ReleaseComObject(Object)

Diminui a contagem de referência do RCW (Runtime Callable Wrapper) associado ao objeto COM especificado.Decrements the reference count of the Runtime Callable Wrapper (RCW) associated with the specified COM object.

ReleaseThreadCache()

Libera o cache de thread.Releases the thread cache.

SecureStringToBSTR(SecureString)

Aloca uma BSTR (cadeia de caracteres binária) não gerenciada copia os conteúdos de um objeto SecureString gerenciado para ela.Allocates an unmanaged binary string (BSTR) and copies the contents of a managed SecureString object into it.

SecureStringToCoTaskMemAnsi(SecureString)

Copia o conteúdo de um objeto SecureString gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.

SecureStringToCoTaskMemUnicode(SecureString)

Copia o conteúdo de um objeto SecureString gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.Copies the contents of a managed SecureString object to a block of memory allocated from the unmanaged COM task allocator.

SecureStringToGlobalAllocAnsi(SecureString)

Copia o conteúdo de um SecureString gerenciado para a memória não gerenciada, convertendo em formato ANSI durante a cópia.Copies the contents of a managed SecureString into unmanaged memory, converting into ANSI format as it copies.

SecureStringToGlobalAllocUnicode(SecureString)

Copia o conteúdo de um objeto SecureString gerenciado para uma memória não gerenciada.Copies the contents of a managed SecureString object into unmanaged memory.

SetComObjectData(Object, Object, Object)

Define os dados referenciados pela chave especificada no objeto COM especificado.Sets data referenced by the specified key in the specified COM object.

SizeOf(Object)

Retorna o tamanho não gerenciado de um objeto em bytes.Returns the unmanaged size of an object in bytes.

SizeOf(Type)

Retorna o tamanho de um tipo não gerenciado em bytes.Returns the size of an unmanaged type in bytes.

SizeOf<T>()

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Retorna o tamanho de um tipo não gerenciado em bytes.Returns the size of an unmanaged type in bytes.

SizeOf<T>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Retorna o tamanho não gerenciado de um objeto de um tipo especificado em bytes.Returns the unmanaged size of an object of a specified type in bytes.

StringToBSTR(String)

Aloca um BSTR e copia o conteúdo de um String gerenciado para ele.Allocates a BSTR and copies the contents of a managed String into it.

StringToCoTaskMemAnsi(String)

Copia o conteúdo de um String gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemAuto(String)

Copia o conteúdo de um String gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemUni(String)

Copia o conteúdo de um String gerenciado para um bloco de memória alocado do alocador de tarefas COM não gerenciado.Copies the contents of a managed String to a block of memory allocated from the unmanaged COM task allocator.

StringToCoTaskMemUTF8(String)
StringToHGlobalAnsi(String)

Copia o conteúdo de um String gerenciado para a memória não gerenciada, convertendo em formato ANSI durante a cópia.Copies the contents of a managed String into unmanaged memory, converting into ANSI format as it copies.

StringToHGlobalAuto(String)

Copia o conteúdo de um String gerenciado para a memória não gerenciada, convertendo para formato ANSI, se necessário.Copies the contents of a managed String into unmanaged memory, converting into ANSI format if required.

StringToHGlobalUni(String)

Copia o conteúdo de um String gerenciado para uma memória não gerenciada.Copies the contents of a managed String into unmanaged memory.

StructureToPtr(Object, IntPtr, Boolean)

Realizar o marshaling de dados de um objeto gerenciado para um bloco não gerenciado de memória.Marshals data from a managed object to an unmanaged block of memory.

StructureToPtr<T>(T, IntPtr, Boolean)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Realiza marshaling de dados de um objeto gerenciado de um tipo especificado para um bloco de memória não gerenciado.Marshals data from a managed object of a specified type to an unmanaged block of memory.

ThrowExceptionForHR(Int32)

Aciona uma exceção com uma valor HRESULT de falha específico.Throws an exception with a specific failure HRESULT value.

ThrowExceptionForHR(Int32, IntPtr)

Gera uma exceção com uma falha específica HRESULT com base na interface IErrorInfo especificada.Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo interface.

UnsafeAddrOfPinnedArrayElement(Array, Int32)

Obtém o endereço do elemento no índice especificado na matriz especificada.Gets the address of the element at the specified index inside the specified array.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Obtém o endereço do elemento no índice especificado em uma matriz de um tipo especificado.Gets the address of the element at the specified index in an array of a specified type.

WriteByte(IntPtr, Byte)

Grava um valor de byte único na memória não gerenciada.Writes a single byte value to unmanaged memory.

WriteByte(IntPtr, Int32, Byte)

Grava um valor de byte único na memória não gerenciada em um deslocamento especificado.Writes a single byte value to unmanaged memory at a specified offset.

WriteByte(Object, Int32, Byte)

Grava um valor de byte único na memória não gerenciada em um deslocamento especificado.Writes a single byte value to unmanaged memory at a specified offset.

WriteInt16(IntPtr, Char)

Grava um caractere como um valor inteiro de 16 bits na memória não gerenciada.Writes a character as a 16-bit integer value to unmanaged memory.

WriteInt16(IntPtr, Int16)

Grava um valor inteiro de 16 bits na memória não gerenciada.Writes a 16-bit integer value to unmanaged memory.

WriteInt16(IntPtr, Int32, Char)

Grava um valor inteiro com sinal de 16 bits na memória não gerenciada em um deslocamento especificado.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt16(IntPtr, Int32, Int16)

Grava um valor inteiro com sinal de 16 bits na memória não gerenciada em um deslocamento especificado.Writes a 16-bit signed integer value into unmanaged memory at a specified offset.

WriteInt16(Object, Int32, Char)

Grava um valor inteiro com sinal de 16 bits na memória não gerenciada em um deslocamento especificado.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt16(Object, Int32, Int16)

Grava um valor inteiro com sinal de 16 bits na memória não gerenciada em um deslocamento especificado.Writes a 16-bit signed integer value to unmanaged memory at a specified offset.

WriteInt32(IntPtr, Int32)

Grava um valor inteiro com sinal de 32 bits na memória não gerenciada.Writes a 32-bit signed integer value to unmanaged memory.

WriteInt32(IntPtr, Int32, Int32)

Grava um valor inteiro com sinal de 32 bits na memória não gerenciada em um deslocamento especificado.Writes a 32-bit signed integer value into unmanaged memory at a specified offset.

WriteInt32(Object, Int32, Int32)

Grava um valor inteiro com sinal de 32 bits na memória não gerenciada em um deslocamento especificado.Writes a 32-bit signed integer value to unmanaged memory at a specified offset.

WriteInt64(IntPtr, Int32, Int64)

Grava um valor inteiro com sinal de 64 bits na memória não gerenciada em um deslocamento especificado.Writes a 64-bit signed integer value to unmanaged memory at a specified offset.

WriteInt64(IntPtr, Int64)

Grava um valor inteiro com sinal de 64 bits na memória não gerenciada.Writes a 64-bit signed integer value to unmanaged memory.

WriteInt64(Object, Int32, Int64)

Grava um valor inteiro com sinal de 64 bits na memória não gerenciada em um deslocamento especificado.Writes a 64-bit signed integer value to unmanaged memory at a specified offset.

WriteIntPtr(IntPtr, Int32, IntPtr)

Grava um valor de inteiro de tamanho nativo de processador na memória não gerenciada em um deslocamento especificado.Writes a processor native-sized integer value to unmanaged memory at a specified offset.

WriteIntPtr(IntPtr, IntPtr)

Grava um valor de inteiro de tamanho nativo de processador na memória não gerenciada.Writes a processor native sized integer value into unmanaged memory.

WriteIntPtr(Object, Int32, IntPtr)

Grava um valor de inteiro de tamanho nativo de processador na memória não gerenciada.Writes a processor native sized integer value to unmanaged memory.

ZeroFreeBSTR(IntPtr)

Libera um ponteiro BSTR que foi alocado usando o método SecureStringToBSTR(SecureString).Frees a BSTR pointer that was allocated using the SecureStringToBSTR(SecureString) method.

ZeroFreeCoTaskMemAnsi(IntPtr)

Libera um ponteiro de cadeia de caracteres não gerenciado alocado usando o método SecureStringToCoTaskMemAnsi(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemAnsi(SecureString) method.

ZeroFreeCoTaskMemUnicode(IntPtr)

Libera um ponteiro de cadeia de caracteres não gerenciado alocado usando o método SecureStringToCoTaskMemUnicode(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToCoTaskMemUnicode(SecureString) method.

ZeroFreeCoTaskMemUTF8(IntPtr)
ZeroFreeGlobalAllocAnsi(IntPtr)

Libera um ponteiro de cadeia de caracteres não gerenciado alocado usando o método SecureStringToGlobalAllocAnsi(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocAnsi(SecureString) method.

ZeroFreeGlobalAllocUnicode(IntPtr)

Libera um ponteiro de cadeia de caracteres não gerenciado alocado usando o método SecureStringToGlobalAllocUnicode(SecureString).Frees an unmanaged string pointer that was allocated using the SecureStringToGlobalAllocUnicode(SecureString) method.

Aplica-se a