Compartilhar via


Classe Marshal

 

Publicado: março de 2016

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.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Hierarquia de Herança

System.Object
  System.Runtime.InteropServices.Marshal

Sintaxe

public static class Marshal
public ref class Marshal abstract sealed 
[<AbstractClass>]
[<Sealed>]
type Marshal = class end
Public NotInheritable Class Marshal

Métodos

Nome Descrição
System_CAPS_pubmethodSystem_CAPS_static AddRef(IntPtr)

Incrementa a contagem de referência na interface especificada.

System_CAPS_pubmethodSystem_CAPS_static AllocCoTaskMem(Int32)

Aloca um bloco de memória do tamanho especificado do alocador de memória de tarefas COM.

System_CAPS_pubmethodSystem_CAPS_static AllocHGlobal(Int32)

Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.

System_CAPS_pubmethodSystem_CAPS_static AllocHGlobal(IntPtr)

Aloca memória de memória não gerenciada do processo usando o ponteiro para o número de bytes especificado.

System_CAPS_pubmethodSystem_CAPS_static AreComObjectsAvailableForCleanup()

Indica se o runtime callable wrappers (RCWs) em qualquer contexto estão disponíveis para limpeza.

System_CAPS_pubmethodSystem_CAPS_static BindToMoniker(String)

Obtém um ponteiro de interface identificado pelo moniker especificado.

System_CAPS_pubmethodSystem_CAPS_static ChangeWrapperHandleStrength(Object, Boolean)

Altera o nível de um objeto COM Callable Wrapper identificador (CCW).

System_CAPS_pubmethodSystem_CAPS_static CleanupUnusedObjectsInCurrentContext()

Notifica o tempo de execução para limpar todos os RCWs (Runtime Callable Wrappers) alocados no contexto atual.

System_CAPS_pubmethodSystem_CAPS_static 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.

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

Copia os dados de uma matriz de caracteres gerenciada unidimensional para um ponteiro de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

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

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada de caracteres.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

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

Copia os dados de um ponteiro de memória não gerenciada em uma matriz gerenciada IntPtr.

System_CAPS_pubmethodSystem_CAPS_static 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.

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

Copia os dados de uma matriz gerenciada unidimensional IntPtr para um ponteiro de memória não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static CreateAggregatedObject(IntPtr, Object)

Agrega um objeto gerenciado com o objeto COM especificado.

System_CAPS_pubmethodSystem_CAPS_static CreateAggregatedObject<T>(IntPtr, T)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Agrega um objeto gerenciado do tipo especificado com o objeto COM especificado.

System_CAPS_pubmethodSystem_CAPS_static CreateWrapperOfType(Object, Type)

Encapsula o objeto COM indicado em um objeto do tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static CreateWrapperOfType<T, TWrapper>(T)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Encapsula o objeto COM especificado em um objeto do tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static DestroyStructure(IntPtr, Type)

Libera todas as subestruturas para as quais o bloco de memória não gerenciada especificado aponta.

System_CAPS_pubmethodSystem_CAPS_static DestroyStructure<T>(IntPtr)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Libera todos os subestruturas de um tipo especificado que o bloco de memória não gerenciado especificado aponta para.

System_CAPS_pubmethodSystem_CAPS_static FinalReleaseComObject(Object)

Libera todas as referências a um RCW (Runtime Callable Wrapper) (RCW), definindo sua contagem de referência como 0.

System_CAPS_pubmethodSystem_CAPS_static FreeBSTR(IntPtr)

Libera um BSTR usando o COM SysFreeString função.

System_CAPS_pubmethodSystem_CAPS_static FreeCoTaskMem(IntPtr)

Libera um bloco de memória alocado pelo alocador de memória de tarefa COM não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static FreeHGlobal(IntPtr)

Libera memória anteriormente alocada da memória não gerenciada do processo.

System_CAPS_pubmethodSystem_CAPS_static GenerateGuidForType(Type)

Retorna o identificador global exclusivo (GUID) para o tipo especificado ou gera um GUID usando o algoritmo usado pelo Exportador da biblioteca (Tlbexp.exe).

System_CAPS_pubmethodSystem_CAPS_static GenerateProgIdForType(Type)

Retorna um identificador programático (ProgID) para o tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static GetActiveObject(String)

Obtém uma instância em execução do objeto especificado do ROT (tabela de objetos em execução).

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject(Object, Type)

Retorna um ponteiro para uma interface IUnknown que representa a interface indicada no objeto especificado. O acesso à interface de consulta personalizada é habilitada por padrão.

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Retorna um ponteiro para um IUnknown interface que representa a interface especificada no objeto especificado. Acesso à interface de consulta personalizada é controlado pelo modo de personalização especificado.

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject<T, TInterface>(T)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Retorna um ponteiro para um IUnknown interface que representa a interface especificada em um objeto do tipo especificado. Acesso à interface de consulta personalizada é habilitado por padrão.

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObjectInContext(Object, Type)

Retorna um ponteiro de interface que representa a interface especificada para um objeto, se o chamador estiver no mesmo contexto de objeto.

System_CAPS_pubmethodSystem_CAPS_static GetComObjectData(Object, Object)

Recupera os dados que são referenciados pela chave especificada do objeto COM especificado.

System_CAPS_pubmethodSystem_CAPS_static GetComSlotForMethodInfo(MemberInfo)

Recupera o slot de tabela (tabela v ou VTBL) de função virtual para um System.Reflection.MemberInfo Digite quando o tipo é exposto para COM.

System_CAPS_pubmethodSystem_CAPS_static GetDelegateForFunctionPointer(IntPtr, Type)

Converte um ponteiro de função não gerenciada em um delegado.

System_CAPS_pubmethodSystem_CAPS_static GetDelegateForFunctionPointer<TDelegate>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Converte um ponteiro de função não gerenciada em um delegado de um tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static GetEndComSlot(Type)

Recupera o último slot na tabela de função virtual (tabela v ou VTBL) de um tipo quando exposto para COM.

System_CAPS_pubmethodSystem_CAPS_static GetExceptionCode()

Recupera um código que identifica o tipo da exceção ocorrido.

System_CAPS_pubmethodSystem_CAPS_static GetExceptionForHR(Int32)

Converte o código de erro HRESULT especificado em um objeto Exception correspondente.

System_CAPS_pubmethodSystem_CAPS_static GetExceptionForHR(Int32, IntPtr)

Converte o código de erro HRESULT especificado para um correspondente Exception objeto, com informações adicionais sobre erros passado um IErrorInfo interface para o objeto de exceção.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static GetFunctionPointerForDelegate(Delegate)

Converte um delegado em um ponteiro de função que pode ser chamado do código não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Converte um delegado de um tipo especificado em um ponteiro de função que pode ser chamado do código não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetHINSTANCE(Module)

Retorna o identificador de instância (HINSTANCE) do módulo especificado.

System_CAPS_pubmethodSystem_CAPS_static GetHRForException(Exception)

Converte a exceção especificada para um HRESULT.

System_CAPS_pubmethodSystem_CAPS_static GetHRForLastWin32Error()

Retorna o HRESULT correspondente ao último erro gerado pelo código do Win32 executado usando Marshal.

System_CAPS_pubmethodSystem_CAPS_static GetIDispatchForObject(Object)

Retorna um IDispatch interface de um objeto gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetIDispatchForObjectInContext(Object)

Retorna um IDispatch interface ponteiro de um objeto gerenciado, se o chamador estiver no mesmo contexto de objeto.

System_CAPS_pubmethodSystem_CAPS_static GetITypeInfoForType(Type)

Retorna um System.Runtime.InteropServices.ComTypes.ITypeInfo interface a partir de um tipo gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetIUnknownForObject(Object)

Retorna uma interface IUnknown de um objeto gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetIUnknownForObjectInContext(Object)

Retorna um IUnknown de interface de um objeto gerenciado, se o chamador estiver no mesmo contexto de objeto.

System_CAPS_pubmethodSystem_CAPS_static 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 DllImportAttribute.SetLastError definido.

System_CAPS_pubmethodSystem_CAPS_static GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)

Obsoleto. Obtém um ponteiro para uma função gerados pelo tempo de execução que realiza marshaling de uma chamada do código gerenciado para não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera um MemberInfo objeto para o slot de tabela (tabela v ou VTBL) de função virtual especificado.

System_CAPS_pubmethodSystem_CAPS_static GetNativeVariantForObject(Object, IntPtr)

Converte um objeto em um COM VARIANT.

System_CAPS_pubmethodSystem_CAPS_static GetNativeVariantForObject<T>(T, IntPtr)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Converte um objeto de um tipo especificado em uma VARIANTE COM.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForIUnknown(IntPtr)

Retorna uma instância de um tipo que representa um objeto COM de um ponteiro para sua interface IUnknown.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForNativeVariant(IntPtr)

Converte um COM VARIANT em um objeto.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForNativeVariant<T>(IntPtr)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Converte uma VARIANTE COM um objeto de um tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static GetObjectsForNativeVariants(IntPtr, Int32)

Converte uma matriz de COM VARIANTs para uma matriz de objetos.

System_CAPS_pubmethodSystem_CAPS_static GetObjectsForNativeVariants<T>(IntPtr, Int32)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Converte uma matriz de variantes de COM em uma matriz de um tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static GetStartComSlot(Type)

Obtém o primeiro slot a tabela de função virtual (tabela v ou VTBL) que contém os métodos definidos pelo usuário.

System_CAPS_pubmethodSystem_CAPS_static GetThreadFromFiberCookie(Int32)

Obsoleto. Converte um cookie de fibra em correspondente System.Threading.Thread instância.

System_CAPS_pubmethodSystem_CAPS_static GetTypedObjectForIUnknown(IntPtr, Type)

Retorna um objeto gerenciado de um tipo especificado que representa um objeto COM.

System_CAPS_pubmethodSystem_CAPS_static GetTypeForITypeInfo(IntPtr)

Converte um não-gerenciado ITypeInfo o objeto para um gerenciado System.Type objeto.

System_CAPS_pubmethodSystem_CAPS_static GetTypeFromCLSID(Guid)

Retorna o tipo associado ao CLSID (identificador de classe) especificado.

System_CAPS_pubmethodSystem_CAPS_static GetTypeInfoName(ITypeInfo)

Recupera o nome do tipo representado por um ITypeInfo objeto.

System_CAPS_pubmethodSystem_CAPS_static GetTypeInfoName(UCOMITypeInfo)

Obsoleto. Recupera o nome do tipo representado por um ITypeInfo objeto.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuid(ITypeLib)

Recupera o identificador de biblioteca (ID da biblioteca) de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuid(UCOMITypeLib)

Obsoleto. Recupera o identificador de biblioteca (ID da biblioteca) de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuidForAssembly(Assembly)

Recupera o identificador de biblioteca (LIBID) que é atribuído a uma biblioteca de tipos, quando foi exportado do assembly especificado.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibLcid(ITypeLib)

Recupera o LCID de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibLcid(UCOMITypeLib)

Obsoleto. Recupera o LCID de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibName(ITypeLib)

Recupera o nome de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibName(UCOMITypeLib)

Obsoleto. Recupera o nome de uma biblioteca de tipos.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Recupera o número de versão de uma biblioteca de tipos que será exportado do assembly especificado.

System_CAPS_pubmethodSystem_CAPS_static GetUniqueObjectForIUnknown(IntPtr)

Cria um único RCW (Runtime Callable Wrapper) objeto (RCW) para um determinado IUnknown interface.

System_CAPS_pubmethodSystem_CAPS_static GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)

Obsoleto. Obtém um ponteiro para uma função gerados pelo tempo de execução que realiza marshaling de uma chamada de não gerenciado para código gerenciado.

System_CAPS_pubmethodSystem_CAPS_static IsComObject(Object)

Indica se um objeto especificado representa um objeto COM.

System_CAPS_pubmethodSystem_CAPS_static IsTypeVisibleFromCom(Type)

Indica se um tipo é visível para clientes COM.

System_CAPS_pubmethodSystem_CAPS_static NumParamBytes(MethodInfo)

Calcula o número de bytes de memória não gerenciada que são necessárias para manter os parâmetros para o método especificado.

System_CAPS_pubmethodSystem_CAPS_static OffsetOf(Type, String)

Retorna o deslocamento de campo do formulário não gerenciado da classe gerenciada.

System_CAPS_pubmethodSystem_CAPS_static OffsetOf<T>(String)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Retorna o deslocamento de campo do formulário não gerenciado de uma classe gerenciada especificada.

System_CAPS_pubmethodSystem_CAPS_static Prelink(MethodInfo)

Executa tarefas de configuração do método único sem chamar o método.

System_CAPS_pubmethodSystem_CAPS_static PrelinkAll(Type)

Executa uma verificação de pré-link para todos os métodos em uma classe.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringAuto(IntPtr, Int32)

Aloca um gerenciado String e copia o número especificado de caracteres de uma cadeia de caracteres armazenada na memória não gerenciada para ele.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringBSTR(IntPtr)

Aloca um gerenciado String e copia um binary string (BSTR) armazenados em memória não gerenciada para ele.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure(IntPtr, Object)

Realizar o marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure<T>(IntPtr)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

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.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure<T>(IntPtr, T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Realiza marshaling de dados de um bloco não gerenciado de memória para um objeto gerenciado do tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static QueryInterface(IntPtr, Guid, IntPtr)

Solicita um ponteiro para uma interface especificada de um objeto COM.

System_CAPS_pubmethodSystem_CAPS_static ReadByte(IntPtr)

Lê um único byte da memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadByte(IntPtr, Int32)

Lê um único byte em um determinado deslocamento (ou índice) de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadByte(Object, Int32)

Lê um byte em um determinado deslocamento (ou índice) de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(IntPtr)

Lê um inteiro assinado de 16 bits de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(IntPtr, Int32)

Lê um inteiro assinado de 16 bits em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(Object, Int32)

Lê um inteiro assinado de 16 bits em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(IntPtr)

Lê um inteiro com sinal de 32 bits da memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(IntPtr, Int32)

Lê um inteiro com sinal de 32 bits em um deslocamento fornecido na memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(Object, Int32)

Lê um inteiro assinado de 32 bits em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(IntPtr)

Lê um inteiro assinado de 64 bits de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(IntPtr, Int32)

Lê um inteiro assinado de 64 bits em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(Object, Int32)

Lê um inteiro assinado de 64 bits em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(IntPtr)

Lê um inteiro de tamanho nativo de processador da memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(IntPtr, Int32)

Lê um inteiro de tamanho nativo de processador em um determinado deslocamento de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(Object, Int32)

Lê um inteiro de tamanho nativo de processador de memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ReAllocCoTaskMem(IntPtr, Int32)

Redimensiona um bloco de memória alocado anteriormente com AllocCoTaskMem.

System_CAPS_pubmethodSystem_CAPS_static ReAllocHGlobal(IntPtr, IntPtr)

Redimensiona um bloco de memória alocado anteriormente com AllocHGlobal.

System_CAPS_pubmethodSystem_CAPS_static Release(IntPtr)

Diminui a contagem de referência na interface especificada.

System_CAPS_pubmethodSystem_CAPS_static ReleaseComObject(Object)

Diminui a contagem de referência do RCW (Runtime Callable Wrapper) (RCW) associado ao objeto COM especificado.

System_CAPS_pubmethodSystem_CAPS_static ReleaseThreadCache()

Obsoleto. Libera o cache de thread.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToBSTR(SecureString)

Aloca uma cadeira de caracteres binária não gerenciada (BSTR) e copia os conteúdos de um objeto SecureString gerenciado para ela.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToCoTaskMemAnsi(SecureString)

Copia o conteúdo de um gerenciado SecureString objeto para um bloco de memória alocada do alocador de tarefas COM não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToGlobalAllocUnicode(SecureString)

Copia o conteúdo de um objeto SecureString gerenciado para uma memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static SetComObjectData(Object, Object, Object)

Define os dados referenciados pela chave especificada no objeto COM especificado.

System_CAPS_pubmethodSystem_CAPS_static SizeOf(Object)

Retorna o tamanho não gerenciado de um objeto em bytes.

System_CAPS_pubmethodSystem_CAPS_static SizeOf(Type)

Retorna o tamanho de um tipo não gerenciado em bytes.

System_CAPS_pubmethodSystem_CAPS_static SizeOf<T>()

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Retorna o tamanho de um tipo não gerenciado em bytes.

System_CAPS_pubmethodSystem_CAPS_static SizeOf<T>(T)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Retorna o tamanho não gerenciado de um objeto de um tipo especificado em bytes.

System_CAPS_pubmethodSystem_CAPS_static StringToBSTR(String)

Aloca um BSTR e copia o conteúdo de um String gerenciado para ele.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static StringToCoTaskMemAuto(String)

Copia o conteúdo de um gerenciado String para um bloco de memória alocada do alocador de tarefas COM não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static 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.

System_CAPS_pubmethodSystem_CAPS_static StringToHGlobalAuto(String)

Copia o conteúdo de um String gerenciado para a memória não gerenciada, convertendo para formato ANSI, se necessário.

System_CAPS_pubmethodSystem_CAPS_static StringToHGlobalUni(String)

Copia o conteúdo de um String gerenciado para uma memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static StructureToPtr(Object, IntPtr, Boolean)

Realizar o marshaling de dados de um objeto gerenciado para um bloco não gerenciado de memória.

System_CAPS_pubmethodSystem_CAPS_static StructureToPtr<T>(T, IntPtr, Boolean)

[Suporte somente no .NET Framework 4.5.1 e versões posteriores]

Realiza marshaling de dados de um objeto gerenciado de um tipo especificado para um bloco de memória não gerenciado.

System_CAPS_pubmethodSystem_CAPS_static ThrowExceptionForHR(Int32)

Aciona uma exceção com uma valor HRESULT de falha específico.

System_CAPS_pubmethodSystem_CAPS_static ThrowExceptionForHR(Int32, IntPtr)

Gera uma exceção com uma falha específica HRESULT com base na interface IErrorInfo especificada.

System_CAPS_pubmethodSystem_CAPS_static UnsafeAddrOfPinnedArrayElement(Array, Int32)

Obtém o endereço do elemento no índice especificado na matriz especificada.

System_CAPS_pubmethodSystem_CAPS_static UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

[Com suporte no .NET Framework 4.5.1 e versões posteriores]

Obtém o endereço do elemento no índice especificado em uma matriz de um tipo especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteByte(IntPtr, Byte)

Grava um valor de byte único na memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteByte(IntPtr, Int32, Byte)

Grava um valor de byte único na memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteByte(Object, Int32, Byte)

Grava um valor de byte único memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Char)

Grava um caractere como um valor inteiro de 16 bits em memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int16)

Grava um valor inteiro de 16 bits em memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int32, Char)

Grava um valor inteiro assinado de 16 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int32, Int16)

Grava um valor inteiro assinado de 16 bits na memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(Object, Int32, Char)

Grava um valor inteiro assinado de 16 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(Object, Int32, Int16)

Grava um valor inteiro assinado de 16 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(IntPtr, Int32)

Grava um valor inteiro com sinal de 32 bits na memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(IntPtr, Int32, Int32)

Grava um valor inteiro assinado de 32 bits na memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(Object, Int32, Int32)

Grava um valor inteiro assinado de 32 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(IntPtr, Int32, Int64)

Grava um valor inteiro assinado de 64 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(IntPtr, Int64)

Grava um valor inteiro assinado de 64 bits em memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(Object, Int32, Int64)

Grava um valor inteiro assinado de 64 bits em memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(IntPtr, Int32, IntPtr)

Grava um valor inteiro em tamanho nativo de processador para memória não gerenciada em um deslocamento especificado.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(IntPtr, IntPtr)

Grava um valor de inteiro dimensionados nativo de processador na memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(Object, Int32, IntPtr)

Grava um valor de inteiro dimensionados nativo de processador para memória não gerenciada.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeBSTR(IntPtr)

Libera um BSTR ponteiro que foi alocado usando o SecureStringToBSTR método.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeCoTaskMemAnsi(IntPtr)

Libera um ponteiro não gerenciado de cadeia de caracteres que foi alocado usando o SecureStringToCoTaskMemAnsi método.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeCoTaskMemUnicode(IntPtr)

Libera um ponteiro não gerenciado de cadeia de caracteres que foi alocado usando o SecureStringToCoTaskMemUnicode método.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeGlobalAllocAnsi(IntPtr)

Libera um ponteiro não gerenciado de cadeia de caracteres que foi alocado usando o SecureStringToGlobalAllocAnsi método.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeGlobalAllocUnicode(IntPtr)

Libera um ponteiro não gerenciado de cadeia de caracteres que foi alocado usando o SecureStringToGlobalAllocUnicode método.

Campos

Nome Descrição
System_CAPS_pubfieldSystem_CAPS_static SystemDefaultCharSize

Representa o tamanho de caractere padrão no sistema; o padrão é 2 para sistemas Unicode e 1 para sistemas de ANSI. Este campo é somente leitura.

System_CAPS_pubfieldSystem_CAPS_static SystemMaxDBCSCharSize

Representa o tamanho máximo de um tamanho DBCS (conjunto) de caractere de byte duplo, em bytes, para o sistema operacional atual. Este campo é somente leitura.

Comentários

The static methods defined on the T:System.Runtime.InteropServices.Marshal class are essential to working with unmanaged code. Most methods defined in this class are typically used by developers who want to provide a bridge between the managed and unmanaged programming models. For example, the M:System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(System.String) method copies ANSI characters from a specified string (in the managed heap) to a buffer in the unmanaged heap. It also allocates the target heap of the right size.

The common language runtime provides specific marshaling capabilities. For details on marshaling behavior, see Interop Marshaling.

The Read and Write methods in the T:System.Runtime.InteropServices.Marshal class support both aligned and unaligned access.

Exemplos

The following example shows how to use various methods defined by the T:System.Runtime.InteropServices.Marshal class.

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
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
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

Informações de Versão

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1

Acesso thread-safe

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Confira Também

Namespace System.Runtime.InteropServices

Retornar ao início