Marshal Classe

Definição

Fornece uma coleção de métodos para alocar memória não gerida, copiar blocos de memória não geridos e converter tipos gerenciados para tipos não geridos, bem como outros métodos diversos usados ao interagir com código não gerido.

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

Exemplos

O exemplo seguinte mostra como usar vários métodos definidos pela Marshal classe.

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 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
// 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 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
// 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 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
' CloseHandle call failed with an error code of: 6

Observações

Os static métodos definidos na Marshal classe são essenciais para trabalhar com código não gerido. A maioria dos métodos definidos nesta classe é tipicamente usada por programadores que pretendem criar uma ponte entre os modelos de programação gerida e não gerida. Por exemplo, o StringToHGlobalAnsi método copia caracteres ANSI de uma string especificada (no heap gerido) para um buffer no heap não gerido. Também aloca o heap alvo do tamanho correto.

O runtime da common language fornece capacidades específicas de marshaling. Para detalhes sobre o comportamento de marshaling, veja Interop Marshaling.

Os Read métodos e Write na Marshal classe suportam tanto o acesso alinhado como o desalinhado.

Campos

Name Description
SystemDefaultCharSize

Representa o tamanho padrão do carácter no sistema; o padrão é 2 para sistemas Unicode e 1 para sistemas ANSI. Este campo é só de leitura.

SystemMaxDBCSCharSize

Representa o tamanho máximo de um conjunto de caracteres de dois bytes (DBCS), em bytes, para o sistema operativo atual. Este campo é só de leitura.

Métodos

Name Description
AddRef(IntPtr)

Incrementa a contagem de referências na interface especificada.

AllocCoTaskMem(Int32)

Aloca um bloco de memória de tamanho especificado a partir do alocador de memória de tarefa COM.

AllocHGlobal(Int32)

Aloca memória a partir da memória não gerida do processo usando o número especificado de bytes.

AllocHGlobal(IntPtr)

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

AreComObjectsAvailableForCleanup()

Indica se os wrappers chamáveis em tempo de execução (RCWs) de qualquer contexto estão disponíveis para limpeza.

BindToMoniker(String)

Recebe um ponteiro de interface identificado pelo nome especificado.

ChangeWrapperHandleStrength(Object, Boolean)

Altera a intensidade do handler COM Callable Wrapper (CCW) de um objeto.

CleanupUnusedObjectsInCurrentContext()

Notifica o tempo de execução para limpar todos os Wrappers Chamáveis em Tempo de Execução (RCWs) alocados no contexto atual.

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

Copia dados de um array inteiro unidimensional, gerido de 8 bits, sem sinal, para um ponteiro de memória não gerido.

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

Copia dados de um array de caracteres unidimensional e gerido para um ponteiro de memória não gerido.

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

Copia dados de um array de números de ponto flutuante de dupla precisão unidimensional e gerido para um ponteiro de memória não gerido.

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

Copia dados de um array inteiro unidimensional, gerido e gerido de 16 bits para um ponteiro de memória não gerido.

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

Copia dados de um array inteiro unidimensional, gerido e gerido de 32 bits, para um ponteiro de memória não gerido.

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

Copia dados de um array inteiro unidimensional, gerido e gerido de 64 bits para um ponteiro de memória não gerido.

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

Copia dados de um ponteiro de memória não gerida para um array inteiro não assinado de 8 bits gerido.

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

Copia dados de um apontador de memória não gerida para um array de caracteres gerido.

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

Copia dados de um ponteiro de memória não gerido para um array de números de ponto flutuante de dupla precisão gerido.

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

Copia dados de um ponteiro de memória não gerida para um array inteiro gestual de 16 bits com sinal.

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

Copia dados de um ponteiro de memória não gerida para um array inteiro gestual de 32 bits com sinal.

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

Copia dados de um ponteiro de memória não gerida para um array inteiro gestual de 64 bits com sinal.

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

Copia dados de um ponteiro de memória não gerida para um array gerido IntPtr .

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

Copia dados de um ponteiro de memória não gerida para um array de números de ponto flutuante de precisão simples gerida.

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

Copia dados de um array unidimensional e gerido IntPtr para um ponteiro de memória não gerido.

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

Copia dados de um array de números de ponto flutuante unidimensional, gerido e de precisão simples para um ponteiro de memória não gerido.

CreateAggregatedObject(IntPtr, Object)
Obsoleto.

Agrega um objeto gerido com o objeto COM especificado.

CreateAggregatedObject<T>(IntPtr, T)

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

CreateWrapperOfType(Object, Type)
Obsoleto.

Envolve o objeto COM especificado num objeto do tipo especificado.

CreateWrapperOfType<T,TWrapper>(T)

Envolve o objeto COM especificado num objeto do tipo especificado.

DestroyStructure(IntPtr, Type)
Obsoleto.

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

DestroyStructure<T>(IntPtr)

Liberta todas as subestruturas de um tipo especificado para onde aponta o bloco de memória não gerida especificado.

FinalReleaseComObject(Object)

Liberta todas as referências a um Runtime Callable Wrapper (RCW) definindo a sua contagem de referências para 0.

FreeBSTR(IntPtr)

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

FreeCoTaskMem(IntPtr)

Liberta um bloco de memória alocado pelo alocador de memória de tarefa COM não gerido.

FreeHGlobal(IntPtr)

Liberta a memória previamente alocada da memória não gerida do processo.

GenerateGuidForType(Type)

Devolve o identificador globalmente único (GUID) para o tipo especificado, ou gera um GUID usando o algoritmo usado pelo Type Library Exporter (Tlbexp.exe).

GenerateProgIdForType(Type)

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

GetActiveObject(String)

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

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Obsoleto.

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

GetComInterfaceForObject(Object, Type)
Obsoleto.

Devolve um ponteiro para uma interface IUnknown que representa a interface especificada no objeto especificado. O acesso personalizado à interface de consulta está ativado por defeito.

GetComInterfaceForObject<T,TInterface>(T)

Devolve um ponteiro para uma interface IUnknown que representa a interface especificada num objeto do tipo especificado. O acesso personalizado à interface de consulta está ativado por defeito.

GetComInterfaceForObjectInContext(Object, Type)

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

GetComObjectData(Object, Object)

Recupera dados referenciados pela chave especificada a partir do objeto COM especificado.

GetComSlotForMethodInfo(MemberInfo)

Recupera o slot da tabela de funções virtual (v-table ou VTBL) para um tipo especificado MemberInfo quando esse tipo é exposto ao COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Obsoleto.

Converte um ponteiro de função não gerida num delegado.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Converte um ponteiro de função não gerido num delegado de um tipo especificado.

GetEndComSlot(Type)

Recupera o último slot na tabela de funções virtual (v-table ou VTBL) de um tipo quando exposto ao COM.

GetExceptionCode()
Obsoleto.

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

GetExceptionForHR(Int32, IntPtr)

Converte o código de erro HRESULT especificado para um objeto correspondente Exception , com informação adicional de erro passada numa interface IErrorInfo para o objeto exceção.

GetExceptionForHR(Int32)

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

GetExceptionPointers()

Recupera uma descrição independente do computador de uma exceção e informações sobre o estado existente para a thread quando a exceção ocorreu.

GetFunctionPointerForDelegate(Delegate)
Obsoleto.

Converte um delegado num ponteiro de função que pode ser chamado a partir de código não gerido.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Converte um delegado de um tipo especificado num ponteiro de função que pode ser chamado a partir de código não gerido.

GetHINSTANCE(Module)

Devolve o handle da instância (HINSTANCE) para o módulo especificado.

GetHRForException(Exception)

Converte a exceção especificada num HRESULT.

GetHRForLastWin32Error()

Devolve o HRESULT correspondente ao último erro incorrido pelo código Win32 executado usando Marshal.

GetIDispatchForObject(Object)

Devolve uma interface IDispatch de um objeto gerido.

GetIDispatchForObjectInContext(Object)

Devolve um ponteiro de interface IDispatch de um objeto gerido, se o chamador estiver no mesmo contexto que esse objeto.

GetITypeInfoForType(Type)

Devolve uma ITypeInfo interface de um tipo gerido.

GetIUnknownForObject(Object)

Devolve uma interface IUnknown de um objeto gerido.

GetIUnknownForObjectInContext(Object)

Devolve uma interface IUnknown de um objeto gerido, se o chamador estiver no mesmo contexto que esse objeto.

GetLastWin32Error()

Devolve o código de erro devolvido pela última função não gerida que foi chamada usando platform invoke e que tem a SetLastError flag definida.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleto.

Recebe um ponteiro para uma função gerada em tempo de execução que faz o marshal de uma chamada de código gerido para código não gerido.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera um MemberInfo objeto para o slot especificado da tabela de funções virtuais (v-table ou VTBL).

GetNativeVariantForObject(Object, IntPtr)
Obsoleto.

Converte um objeto numa VARIANTE COM.

GetNativeVariantForObject<T>(T, IntPtr)
Obsoleto.

Converte um objeto de um tipo especificado numa VARIANTE COM.

GetObjectForIUnknown(IntPtr)

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

GetObjectForNativeVariant(IntPtr)
Obsoleto.

Converte uma VARIANTE COM num objeto.

GetObjectForNativeVariant<T>(IntPtr)
Obsoleto.

Converte uma VARIANTE COM num objeto de um tipo especificado.

GetObjectsForNativeVariants(IntPtr, Int32)
Obsoleto.

Converte um array de COM VARIANTs num array de objetos.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Obsoleto.

Converte um array de COM VARIANTs num array de um tipo especificado.

GetStartComSlot(Type)

Obtém o primeiro slot na tabela de funções virtual (v-table ou VTBL) que contém métodos definidos pelo utilizador.

GetThreadFromFiberCookie(Int32)
Obsoleto.

Converte um cookie de fibra na instância correspondente Thread .

GetTypedObjectForIUnknown(IntPtr, Type)

Devolve um objeto gerido de um tipo especificado que representa um objeto COM.

GetTypeForITypeInfo(IntPtr)

Converte um objeto ITypeInfo não gerido num objeto gerido Type .

GetTypeFromCLSID(Guid)

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

GetTypeInfoName(ITypeInfo)

Recupera o nome do tipo representado por um objeto ITypeInfo .

GetTypeInfoName(UCOMITypeInfo)
Obsoleto.

Recupera o nome do tipo representado por um objeto ITypeInfo .

GetTypeLibGuid(ITypeLib)

Recupera o identificador de biblioteca (LIBID) de uma biblioteca de tipos.

GetTypeLibGuid(UCOMITypeLib)
Obsoleto.

Recupera o identificador de biblioteca (LIBID) de uma biblioteca de tipos.

GetTypeLibGuidForAssembly(Assembly)

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

GetTypeLibLcid(ITypeLib)

Recupera o LCID de uma biblioteca de tipos.

GetTypeLibLcid(UCOMITypeLib)
Obsoleto.

Recupera o LCID de uma biblioteca de tipos.

GetTypeLibName(ITypeLib)

Recupera o nome de uma biblioteca de tipos.

GetTypeLibName(UCOMITypeLib)
Obsoleto.

Recupera o nome de uma biblioteca de tipos.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

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

GetUniqueObjectForIUnknown(IntPtr)

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

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleto.

Recebe um ponteiro para uma função gerada em tempo de execução que faz o marshing de uma chamada de código não gerido para código gerido.

IsComObject(Object)

Indica se um objeto especificado representa um objeto COM.

IsTypeVisibleFromCom(Type)

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

NumParamBytes(MethodInfo)

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

OffsetOf(Type, String)
Obsoleto.

Devolve o deslocamento de campo da forma não gerida da classe gerida.

OffsetOf<T>(String)

Devolve o deslocamento de campo da forma não gerida de uma classe gerida especificada.

Prelink(MethodInfo)

Executa tarefas de configuração de métodos únicas sem chamar o método.

PrelinkAll(Type)

Realiza uma verificação pré-ligação para todos os métodos numa classe.

PtrToStringAnsi(IntPtr, Int32)

Aloca um , gerido String, copia um número especificado de caracteres de uma cadeia ANSI ou UTF-8 não gerida para ele, e alarga cada carácter para UTF-16.

PtrToStringAnsi(IntPtr)

Copia todos os caracteres até ao primeiro carácter nulo de uma cadeia ANSI ou UTF-8 não gerida para uma gerida String, e alarga cada carácter para UTF-16.

PtrToStringAuto(IntPtr, Int32)

Aloca uma cadeia gerida String e copia para ela o número especificado de caracteres de uma string armazenada na memória não gerida.

PtrToStringAuto(IntPtr)

Aloca um carácter gerido String e copia todos os caracteres até ao primeiro carácter nulo de uma cadeia armazenada na memória não gerida para ele.

PtrToStringBSTR(IntPtr)

Aloca uma cadeia gerida String e copia uma string binária (BSTR) armazenada em memória não gerida para nela.

PtrToStringUni(IntPtr, Int32)

Aloca uma cadeia gerida String e copia para ela um número especificado de caracteres de uma cadeia Unicode não gerida.

PtrToStringUni(IntPtr)

Aloca uma cadeia gerida String e copia todos os caracteres até ao primeiro carácter nulo de uma string Unicode não gerida para ele.

PtrToStringUTF8(IntPtr, Int32)

Aloca uma cadeia gerida String e copia um número especificado de bytes de uma cadeia UTF8 não gerida para ela.

PtrToStringUTF8(IntPtr)

Aloca um carácter gerido String e copia todos os caracteres até ao primeiro carácter nulo de uma cadeia UTF-8 não gerida para ele.

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, T)

Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido 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.

QueryInterface(IntPtr, Guid, IntPtr)

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

ReadByte(IntPtr, Int32)

Lê um único byte num determinado offset (ou índice) a partir de memória não gerida.

ReadByte(IntPtr)

Lê um único byte de memória não gerida.

ReadByte(Object, Int32)
Obsoleto.

Lê um único byte num determinado offset (ou índice) a partir de memória não gerida.

ReadInt16(IntPtr, Int32)

Lê um inteiro com sinal de 16 bits a um dado deslocamento a partir da memória não gerida.

ReadInt16(IntPtr)

Lê um inteiro assinado de 16 bits a partir de memória não gerida.

ReadInt16(Object, Int32)
Obsoleto.

Lê um inteiro com sinal de 16 bits a um dado deslocamento a partir da memória não gerida.

ReadInt32(IntPtr, Int32)

Lê um inteiro assinado de 32 bits a um dado offset a partir da memória não gerida.

ReadInt32(IntPtr)

Lê um inteiro assinado de 32 bits a partir de memória não gerida.

ReadInt32(Object, Int32)
Obsoleto.

Lê um inteiro assinado de 32 bits a um dado offset a partir da memória não gerida.

ReadInt64(IntPtr, Int32)

Lê um inteiro assinado de 64 bits a um determinado deslocamento a partir da memória não gerida.

ReadInt64(IntPtr)

Lê um inteiro assinado de 64 bits a partir de memória não gerida.

ReadInt64(Object, Int32)
Obsoleto.

Lê um inteiro assinado de 64 bits a um determinado deslocamento a partir da memória não gerida.

ReadIntPtr(IntPtr, Int32)

Lê um inteiro de tamanho nativo de processador a um dado deslocamento a partir da memória não gerida.

ReadIntPtr(IntPtr)

Lê um inteiro de tamanho nativo de processador a partir de memória não gerida.

ReadIntPtr(Object, Int32)
Obsoleto.

Lê um inteiro de tamanho nativo de processador a partir de memória não gerida.

ReAllocCoTaskMem(IntPtr, Int32)

Redimensiona um bloco de memória previamente atribuído com AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Redimensiona um bloco de memória previamente atribuído com AllocHGlobal(IntPtr).

Release(IntPtr)

Diminui a contagem de referências na interface especificada.

ReleaseComObject(Object)

Diminui a contagem de referência do Invólucro Chamável em Tempo de Execução (RCW) associado ao objeto COM especificado.

ReleaseThreadCache()
Obsoleto.

Liberta a cache da thread.

SecureStringToBSTR(SecureString)

Aloca uma cadeia binária não gerida (BSTR) e copia o conteúdo de um objeto gerido SecureString para nela.

SecureStringToCoTaskMemAnsi(SecureString)

Copia o conteúdo de um objeto gerido SecureString para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

SecureStringToCoTaskMemUnicode(SecureString)

Copia o conteúdo de um objeto gerido SecureString para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

SecureStringToGlobalAllocAnsi(SecureString)

Copia o conteúdo de um gestor SecureString para memória não gerida, convertendo para formato ANSI à medida que copia.

SecureStringToGlobalAllocUnicode(SecureString)

Copia o conteúdo de um objeto gerido SecureString para a memória não gerida.

SetComObjectData(Object, Object, Object)

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

SizeOf(Object)
Obsoleto.

Devolve o tamanho não gerido de um objeto em bytes.

SizeOf(Type)
Obsoleto.

Devolve o tamanho de um tipo não gerido em bytes.

SizeOf<T>()

Devolve o tamanho de um tipo não gerido em bytes.

SizeOf<T>(T)

Devolve o tamanho não gerido de um objeto de um tipo especificado em bytes.

StringToBSTR(String)

Aloca um BSTR e copia o conteúdo de um gerido String nele.

StringToCoTaskMemAnsi(String)

Copia o conteúdo de um managed String para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

StringToCoTaskMemAuto(String)

Copia o conteúdo de um managed String para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

StringToCoTaskMemUni(String)

Copia o conteúdo de um managed String para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

StringToCoTaskMemUTF8(String)

Copia o conteúdo de um managed String para um bloco de memória alocado a partir do alocador de tarefas COM não gerido.

StringToHGlobalAnsi(String)

Copia o conteúdo de um gestor String para memória não gerida, convertendo para formato ANSI à medida que copia.

StringToHGlobalAuto(String)

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

StringToHGlobalUni(String)

Copia o conteúdo de um gerido String para memória não gerida.

StructureToPtr(Object, IntPtr, Boolean)
Obsoleto.

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

StructureToPtr<T>(T, IntPtr, Boolean)

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

ThrowExceptionForHR(Int32, IntPtr)

Lança uma exceção com um HRESULT de falha específico, baseado na interface IErrorInfo especificada.

ThrowExceptionForHR(Int32)

Lança uma exceção com um valor HRESULT específico de falha.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Obsoleto.

Obtém o endereço do elemento no índice especificado dentro do array especificado.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Obtém o endereço do elemento no índice especificado num array de um tipo especificado.

WriteByte(IntPtr, Byte)

Escreve um único valor de byte na memória não gerida.

WriteByte(IntPtr, Int32, Byte)

Escreve um valor de um único byte na memória não gerida a um deslocamento especificado.

WriteByte(Object, Int32, Byte)
Obsoleto.

Escreve um valor de um único byte na memória não gerida a um deslocamento especificado.

WriteInt16(IntPtr, Char)

Escreve um carácter como um valor inteiro de 16 bits na memória não gerida.

WriteInt16(IntPtr, Int16)

Escreve um valor inteiro de 16 bits na memória não gerida.

WriteInt16(IntPtr, Int32, Char)

Escreve um valor inteiro assinado de 16 bits em memória não gerida a um deslocamento especificado.

WriteInt16(IntPtr, Int32, Int16)

Escreve um valor inteiro assinado de 16 bits na memória não gerida a um deslocamento especificado.

WriteInt16(Object, Int32, Char)
Obsoleto.

Escreve um valor inteiro assinado de 16 bits em memória não gerida a um deslocamento especificado.

WriteInt16(Object, Int32, Int16)
Obsoleto.

Escreve um valor inteiro assinado de 16 bits em memória não gerida a um deslocamento especificado.

WriteInt32(IntPtr, Int32, Int32)

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

WriteInt32(IntPtr, Int32)

Escreve um valor inteiro assinado de 32 bits na memória não gerida.

WriteInt32(Object, Int32, Int32)
Obsoleto.

Escreve um valor inteiro assinado de 32 bits na memória não gerida num deslocamento especificado.

WriteInt64(IntPtr, Int32, Int64)

Escreve um valor inteiro assinado de 64 bits em memória não gerida a um deslocamento especificado.

WriteInt64(IntPtr, Int64)

Escreve um valor inteiro assinado de 64 bits na memória não gerida.

WriteInt64(Object, Int32, Int64)
Obsoleto.

Escreve um valor inteiro assinado de 64 bits em memória não gerida a um deslocamento especificado.

WriteIntPtr(IntPtr, Int32, IntPtr)

Escreve um valor inteiro de tamanho nativo de processador numa memória não gerida a um deslocamento especificado.

WriteIntPtr(IntPtr, IntPtr)

Escreve um valor inteiro de tamanho nativo do processador na memória não gerida.

WriteIntPtr(Object, Int32, IntPtr)
Obsoleto.

Escreve um valor inteiro de tamanho nativo de processador na memória não gerida.

ZeroFreeBSTR(IntPtr)

Liberta um ponteiro BSTR que foi atribuído usando o SecureStringToBSTR(SecureString) método.

ZeroFreeCoTaskMemAnsi(IntPtr)

Liberta um apontador de string não gerido que foi alocado usando o SecureStringToCoTaskMemAnsi(SecureString) método.

ZeroFreeCoTaskMemUnicode(IntPtr)

Liberta um apontador de string não gerido que foi alocado usando o SecureStringToCoTaskMemUnicode(SecureString) método.

ZeroFreeCoTaskMemUTF8(IntPtr)

Liberta um apontador de string não gerido que foi alocado usando o StringToCoTaskMemUTF8(String) método.

ZeroFreeGlobalAllocAnsi(IntPtr)

Liberta um apontador de string não gerido que foi alocado usando o SecureStringToGlobalAllocAnsi(SecureString) método.

ZeroFreeGlobalAllocUnicode(IntPtr)

Liberta um apontador de string não gerido que foi alocado usando o SecureStringToGlobalAllocUnicode(SecureString) método.

Aplica-se a