Marshal Classe

Definizione

Fornisce una raccolta di metodi per l'allocazione della memoria non gestita, la copia di blocchi di memoria non gestita e la conversione di tipi gestiti in tipi non gestiti, oltre ad altri metodi usati durante l'interazione con codice non gestito.

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
Ereditarietà
Marshal

Esempio

Nell'esempio seguente viene illustrato come usare vari metodi definiti dalla 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 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

Commenti

I static metodi definiti nella Marshal classe sono essenziali per lavorare con codice non gestito. La maggior parte dei metodi definiti in questa classe viene in genere usata dagli sviluppatori che vogliono fornire un ponte tra i modelli di programmazione gestiti e non gestiti. Ad esempio, il StringToHGlobalAnsi metodo copia i caratteri ANSI da una stringa specificata (nell'heap gestito) in un buffer nell'heap non gestito. Alloca anche l'heap di destinazione delle dimensioni corrette.

Common Language Runtime offre funzionalità di marshalling specifiche. Per informazioni dettagliate sul comportamento di marshalling, vedere Marshalling dell'interoperabilità.

I Read metodi e Write nella classe supportano l'accesso Marshal allineato e non idoneo.

Campi

SystemDefaultCharSize

Rappresenta la dimensione predefinita del carattere nel sistema. Il valore predefinito è 2 per i sistemi Unicode e 1 per i sistemi ANSI. Questo campo è di sola lettura.

SystemMaxDBCSCharSize

Rappresenta la dimensione massima di un set di caratteri a doppio byte (DBCS, double-byte character set), in byte, per il sistema operativo corrente. Questo campo è di sola lettura.

Metodi

AddRef(IntPtr)

Incrementa il numero di riferimenti nell'interfaccia specificata.

AllocCoTaskMem(Int32)

Alloca un blocco di memoria delle dimensioni specificate dall'allocatore di memoria delle attività COM.

AllocHGlobal(Int32)

Alloca memoria dalla memoria non gestita del processo tramite il numero specificato di byte.

AllocHGlobal(IntPtr)

Alloca memoria dalla memoria non gestita del processo tramite il puntatore al numero specificato di byte.

AreComObjectsAvailableForCleanup()

Indica se Runtime Callable Wrapper (RCW) provenienti da qualsiasi contesto sono disponibili per la pulizia.

BindToMoniker(String)

Ottiene un puntatore a interfaccia identificato dal moniker specificato.

ChangeWrapperHandleStrength(Object, Boolean)

Modifica la forza dell'handle COM Callable Wrapper (CCW) di un oggetto.

CleanupUnusedObjectsInCurrentContext()

Notifica al runtime di pulire tutti i wrapper chiamabili di runtime (RCWs) allocati nel contesto corrente.

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

Copia i dati da una matrice di interi senza segno a 8 bit gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di caratteri gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di numeri a virgola mobile a precisione doppia gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di interi con segno a 16 bit gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di interi con segno a 32 bit gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di interi con segno a 64 bit gestita e unidimensionale a un puntatore di memoria non gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi senza segno a 8 bit gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di caratteri gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di numeri a virgola mobile a precisione doppia gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 16 bit gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 32 bit gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di interi con segno a 64 bit gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice IntPtr gestita.

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

Copia i dati da un puntatore di memoria non gestita a una matrice di numeri a virgola mobile a precisione singola gestita.

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

Copia i dati da una matrice IntPtr unidimensionale gestita a un puntatore di memoria non gestita.

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

Copia i dati da una matrice di numeri a virgola mobile a precisione singola gestita unidimensionale a un puntatore di memoria non gestita.

CreateAggregatedObject(IntPtr, Object)
Obsoleti.

Aggrega un oggetto gestito all'oggetto COM specificato.

CreateAggregatedObject<T>(IntPtr, T)

Aggrega un oggetto gestito del tipo specificato con l'oggetto COM specificato.

CreateWrapperOfType(Object, Type)
Obsoleti.

Include l'oggetto COM specificato in un oggetto del tipo specificato.

CreateWrapperOfType<T,TWrapper>(T)

Include l'oggetto COM specificato in un oggetto del tipo specificato.

DestroyStructure(IntPtr, Type)
Obsoleti.

Libera tutte le sottostrutture a cui punta il blocco di memoria non gestita specificato.

DestroyStructure<T>(IntPtr)

Libera tutte le sottostrutture di un tipo specificato a cui punta il blocco di memoria non gestita specificato.

FinalReleaseComObject(Object)

Rilascia tutti i riferimenti a un Runtime Callable Wrapper (RCW) impostando il conteggio dei riferimenti su 0.

FreeBSTR(IntPtr)

Libera un BSTR usando la funzione COM SysFreeString.

FreeCoTaskMem(IntPtr)

Libera un blocco di memoria assegnato dall'allocatore di memoria non gestita delle attività COM.

FreeHGlobal(IntPtr)

Libera la memoria precedentemente allocata dalla memoria non gestita del processo.

GenerateGuidForType(Type)

Restituisce il GUID (Globally Unique Identifier) del tipo specificato o genera un GUID mediante l'algoritmo usato da Type Library Exporter (Tlbexp.exe).

GenerateProgIdForType(Type)

Restituisce un ProgID (Programmatic Identifier) per il tipo specificato.

GetActiveObject(String)

Ottiene un'istanza in esecuzione dell'oggetto specificato dalla tabella ROT (Running Object Table).

GetComInterfaceForObject(Object, Type)
Obsoleti.

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto specificato. L'accesso all'interfaccia di query è abilitato per impostazione predefinita.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Obsoleti.

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto specificato. L'accesso all'interfaccia di query personalizzato viene controllato dalla modalità della personalizzazione specificata.

GetComInterfaceForObject<T,TInterface>(T)

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata sull'oggetto del tipo specificato. L'accesso all'interfaccia di query è abilitato per impostazione predefinita.

GetComInterfaceForObjectInContext(Object, Type)

Restituisce un puntatore a interfaccia che rappresenta l'interfaccia specificata per un oggetto, se il chiamante appartiene allo stesso contesto dell'oggetto.

GetComObjectData(Object, Object)

Recupera i dati ai quali fa riferimento la chiave specificata dall'oggetto COM specificato.

GetComSlotForMethodInfo(MemberInfo)

Recupera lo slot della tabella della funzione virtuale (V-Table o VTBL) per un tipo MemberInfo specificato quando quel tipo è esposto a COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Obsoleti.

Converte un puntatore a funzione non gestito in un delegato.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Converte un puntatore a funzione non gestito in un delegato di un tipo specificato.

GetEndComSlot(Type)

Recupera l'ultimo slot della tabella della funzione virtuale (V-Table o VTBL) di un tipo quando è esposto a COM.

GetExceptionCode()
Obsoleti.

Recupera un codice che identifica il tipo dell'eccezione che si è verificata.

GetExceptionForHR(Int32)

Converte il codice errore HRESULT specificato in un oggetto Exception corrispondente.

GetExceptionForHR(Int32, IntPtr)

Converte il codice di errore HRESULT specificato in un oggetto Exception corrispondente, con ulteriori informazioni sull'errore passate in un'interfaccia IErrorInfo per l'oggetto eccezione.

GetExceptionPointers()

Recupera la descrizione di un'eccezione indipendente dal computer e le informazioni sullo stato esistente per il thread nel momento in cui si è verificata l'eccezione.

GetFunctionPointerForDelegate(Delegate)
Obsoleti.

Converte un delegato in un puntatore a funzione disponibile per la chiamata dal codice non gestito.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Converte un delegato di un tipo specificato in un puntatore a funzione disponibile per la chiamata dal codice non gestito.

GetHINSTANCE(Module)

Restituisce l'handle di istanza (HINSTANCE) per il modulo specificato.

GetHRForException(Exception)

Converte l'eccezione specificata in valore HRESULT.

GetHRForLastWin32Error()

Restituisce il valore HRESULT corrispondente all'ultimo errore in cui è incorso il codice Win32 eseguito usando Marshal.

GetIDispatchForObject(Object)

Restituisce un'interfaccia IDispatch da un oggetto gestito.

GetIDispatchForObjectInContext(Object)

Restituisce un puntatore a interfaccia IDispatch da un oggetto gestito se il chiamante appartiene allo stesso contesto dell'oggetto.

GetITypeInfoForType(Type)

Restituisce un'interfaccia ITypeInfo da un tipo gestito.

GetIUnknownForObject(Object)

Restituisce un'interfaccia IUnknown da un oggetto gestito.

GetIUnknownForObjectInContext(Object)

Restituisce un'interfaccia IUnknown da un oggetto gestito se il chiamante appartiene allo stesso contesto dell'oggetto.

GetLastPInvokeError()

Ottenere l'ultimo errore di richiamare la piattaforma nel thread corrente.

GetLastPInvokeErrorMessage()

Ottiene il messaggio di errore di sistema per l'ultimo codice di errore PInvoke.

GetLastSystemError()

Ottiene l'ultimo errore di sistema nel thread corrente.

GetLastWin32Error()

Restituisce il codice errore restituito dall'ultima funzione non gestita chiamata mediante una chiamata platform invoke con il flag SetLastError impostato.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleti.

Ottiene un puntatore a una funzione generata a runtime che esegue il marshalling di una chiamata da codice gestito a codice non gestito.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera un oggetto MemberInfo per lo slot della tabella di funzione virtuale specificata (V-Table o VTBL).

GetNativeVariantForObject(Object, IntPtr)
Obsoleti.

Converte un oggetto nel tipo COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)
Obsoleti.

Esegue la conversione da un oggetto di tipo specificato in un oggetto COM VARIANT.

GetObjectForIUnknown(IntPtr)

Restituisce un'istanza di un tipo che rappresenta un oggetto COM tramite un puntatore alla relativa interfaccia IUnknown.

GetObjectForNativeVariant(IntPtr)
Obsoleti.

Converte un tipo COM VARIANT in un oggetto.

GetObjectForNativeVariant<T>(IntPtr)
Obsoleti.

Esegue la conversione da un oggetto di tipo specificato a un oggetto COM VARIANT.

GetObjectsForNativeVariants(IntPtr, Int32)
Obsoleti.

Converte una matrice di tipi COM VARIANT in una matrice di oggetti.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Obsoleti.

Converte una matrice di tipi COM VARIANT in una matrice di un tipo specificato.

GetPInvokeErrorMessage(Int32)

Ottiene il messaggio di errore di sistema per il codice di errore specificato.

GetStartComSlot(Type)

Ottiene il primo slot nella tabella di funzioni virtual (V-Table o VTBL) che contiene metodi definiti dall'utente.

GetThreadFromFiberCookie(Int32)
Obsoleti.

Converte un fiber cookie nella corrispondente istanza di Thread.

GetTypedObjectForIUnknown(IntPtr, Type)

Restituisce un oggetto gestito di un tipo specificato che rappresenta un oggetto COM.

GetTypeForITypeInfo(IntPtr)

Converte un oggetto ITypeInfo non gestito in un oggetto Type gestito.

GetTypeFromCLSID(Guid)

Restituisce il tipo associato all'identificatore di classe specificato (CLSID).

GetTypeInfoName(ITypeInfo)

Recupera il nome del tipo rappresentato da un oggetto ITypeInfo.

GetTypeInfoName(UCOMITypeInfo)
Obsoleti.

Recupera il nome del tipo rappresentato da un oggetto ITypeInfo.

GetTypeLibGuid(ITypeLib)

Recupera il LIBID (Library Identifier) di una libreria dei tipi.

GetTypeLibGuid(UCOMITypeLib)
Obsoleti.

Recupera il LIBID (Library Identifier) di una libreria dei tipi.

GetTypeLibGuidForAssembly(Assembly)

Recupera il LIBID assegnato a una libreria dei tipi quando viene esportato dall'assembly specificato.

GetTypeLibLcid(ITypeLib)

Recupera l'LCID di una libreria dei tipi.

GetTypeLibLcid(UCOMITypeLib)
Obsoleti.

Recupera l'LCID di una libreria dei tipi.

GetTypeLibName(ITypeLib)

Recupera il nome di una libreria di tipi.

GetTypeLibName(UCOMITypeLib)
Obsoleti.

Recupera il nome di una libreria di tipi.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Recupera il numero di versione di una libreria dei tipi che verrà esportata dall'assembly specificato.

GetUniqueObjectForIUnknown(IntPtr)

Crea un oggetto Runtime Callable Wrapper (RCW) univoco per un'interfaccia IUnknown specificata.

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleti.

Ottiene un puntatore a una funzione generata a runtime che esegue il marshalling di una chiamata da codice non gestito a codice gestito.

InitHandle(SafeHandle, IntPtr)

Inizializza l'handle sottostante di un oggetto appena creato SafeHandle nel valore specificato.

IsComObject(Object)

Indica se un oggetto specificato rappresenta un oggetto COM.

IsTypeVisibleFromCom(Type)

Indica se un tipo è visibile ai client COM.

NumParamBytes(MethodInfo)

Calcola il numero di byte nella memoria non gestita necessari per contenere i parametri per il metodo specificato.

OffsetOf(Type, String)
Obsoleti.

Restituisce l'offset del campo della forma non gestita della classe gestita.

OffsetOf<T>(String)

Restituisce l'offset del campo della forma non gestita della classe gestita specificata.

Prelink(MethodInfo)

Esegue in un'unica operazione le attività di configurazione del metodo senza chiamarlo.

PrelinkAll(Type)

Esegue un controllo pre-collegamento per tutti i metodi di una classe.

PtrToStringAnsi(IntPtr)

Copia tutti i caratteri fino al primo carattere Null da una stringa non gestita ANSI o UTF-8 a una classe String gestita e trasforma ogni carattere in UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Alloca una classe String gestita e vi copia un numero specifico di caratteri da una stringa non gestita ANSI o UTF-8 e trasforma ogni carattere in UTF-16.

PtrToStringAuto(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere null da una stringa archiviata nella memoria non gestita.

PtrToStringAuto(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia il numero di caratteri specificato da una stringa archiviata nella memoria non gestita.

PtrToStringBSTR(IntPtr)

Alloca un oggetto String gestito e vi copia una stringa binaria (BSTR) archiviata nella memoria non gestita.

PtrToStringUni(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere Null da una stringa Unicode non gestita.

PtrToStringUni(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia un numero di caratteri specificato da una stringa Unicode non gestita.

PtrToStringUTF8(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere Null da una stringa UTF-8 non gestita.

PtrToStringUTF8(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia un numero di byte specificato da una stringa UTF-8 non gestita.

PtrToStructure(IntPtr, Object)
Obsoleti.

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito.

PtrToStructure(IntPtr, Type)
Obsoleti.

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito appena allocato del tipo specificato.

PtrToStructure<T>(IntPtr)

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito appena allocato del tipo specificato per un parametro del tipo generico.

PtrToStructure<T>(IntPtr, T)

Effettua il marshalling di dati da un blocco di memoria non gestita a un oggetto gestito di un tipo specificato.

QueryInterface(IntPtr, Guid, IntPtr)

Richiede un puntatore a un'interfaccia specificata da un oggetto COM.

ReadByte(IntPtr)

Legge un singolo byte da memoria non gestita.

ReadByte(IntPtr, Int32)

Legge un singolo byte in base a un determinato offset (o indice) dalla memoria non gestita.

ReadByte(Object, Int32)
Obsoleti.

Legge un singolo byte in base a un determinato offset (o indice) dalla memoria non gestita.

ReadInt16(IntPtr)

Legge un valore intero con segno a 16 bit dalla memoria non gestita.

ReadInt16(IntPtr, Int32)

Legge un intero con segno a 16 bit a un offset specificato dalla memoria non gestita.

ReadInt16(Object, Int32)
Obsoleti.

Legge un intero con segno a 16 bit a un offset specificato dalla memoria non gestita.

ReadInt32(IntPtr)

Legge un valore intero con segno a 32 bit dalla memoria non gestita.

ReadInt32(IntPtr, Int32)

Legge un Intero con segno a 32 bit a un offset specificato dalla memoria non gestita.

ReadInt32(Object, Int32)
Obsoleti.

Legge un Intero con segno a 32 bit a un offset specificato dalla memoria non gestita.

ReadInt64(IntPtr)

Legge un valore intero con segno a 64 bit dalla memoria non gestita.

ReadInt64(IntPtr, Int32)

Legge un Intero con segno a 64 bit a un offset specificato dalla memoria non gestita.

ReadInt64(Object, Int32)
Obsoleti.

Legge un Intero con segno a 64 bit a un offset specificato dalla memoria non gestita.

ReadIntPtr(IntPtr)

Legge un intero di dimensioni native del processore dalla memoria non gestita.

ReadIntPtr(IntPtr, Int32)

Legge un intero di dimensioni native del processore a un offset specificato dalla memoria non gestita.

ReadIntPtr(Object, Int32)
Obsoleti.

Legge un valore intero della dimensione nativa del processore dalla memoria non gestita.

ReAllocCoTaskMem(IntPtr, Int32)

Ridimensiona un blocco di memoria allocato in precedenza con AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Ridimensiona un blocco di memoria allocato in precedenza con AllocHGlobal(IntPtr).

Release(IntPtr)

Riduce il numero di riferimenti nell'interfaccia specificata.

ReleaseComObject(Object)

Decrementa il conteggio dei riferimenti del Runtime Callable Wrapper (RCW) associato all'oggetto COM specificato.

ReleaseThreadCache()
Obsoleti.

Rilascia la cache del thread.

SecureStringToBSTR(SecureString)

Alloca una stringa binaria (BSTR) non gestita e vi copia il contenuto di un oggetto SecureString gestito.

SecureStringToCoTaskMemAnsi(SecureString)

Copia il contenuto di un oggetto SecureString gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

SecureStringToCoTaskMemUnicode(SecureString)

Copia il contenuto di un oggetto SecureString gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

SecureStringToGlobalAllocAnsi(SecureString)

Copia il contenuto di un oggetto SecureString gestito nella memoria non gestita, effettuando contemporaneamente la conversione nel formato ANSI.

SecureStringToGlobalAllocUnicode(SecureString)

Copia il contenuto di un oggetto SecureString gestito nella memoria non gestita.

SetComObjectData(Object, Object, Object)

Imposta i dati ai quali fa riferimento la chiave specificata nell'oggetto COM specificato.

SetLastPInvokeError(Int32)

Imposta l'ultimo errore platform invoke nel thread corrente.

SetLastSystemError(Int32)

Imposta l'ultimo errore di sistema nel thread corrente.

SizeOf(Object)
Obsoleti.

Restituisce la dimensione non gestita di un oggetto, espressa in byte.

SizeOf(Type)
Obsoleti.

Restituisce la dimensione di un tipo non gestito espressa in byte.

SizeOf<T>()

Restituisce la dimensione di un tipo non gestito espressa in byte.

SizeOf<T>(T)

Restituisce la dimensione non gestita di un oggetto di un tipo specifico in byte.

StringToBSTR(String)

Alloca un elemento BSTR e vi copia il contenuto di un oggetto String gestito.

StringToCoTaskMemAnsi(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

StringToCoTaskMemAuto(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

StringToCoTaskMemUni(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

StringToCoTaskMemUTF8(String)

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

StringToHGlobalAnsi(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita, effettuando contemporaneamente la conversione nel formato ANSI.

StringToHGlobalAuto(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita, effettuando, se necessario, la conversione nel formato ANSI.

StringToHGlobalUni(String)

Copia il contenuto di un oggetto String gestito nella memoria non gestita.

StructureToPtr(Object, IntPtr, Boolean)
Obsoleti.

Effettua il marshalling di dati da un oggetto gestito a un blocco di memoria non gestito.

StructureToPtr<T>(T, IntPtr, Boolean)

Effettua il marshalling di dati da un oggetto gestito di un tipo specificato a un blocco di memoria non gestita.

ThrowExceptionForHR(Int32)

Genera un'eccezione con un valore HRESULT di un errore specifico.

ThrowExceptionForHR(Int32, IntPtr)

Genera un'eccezione con un valore HRESULT di errore specifico, basato sull'interfaccia IErrorInfo specificata.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Obsoleti.

Ottiene l'indirizzo dell'elemento in corrispondenza dell'indice specificato all'interno della matrice specificata.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Ottiene l'indirizzo dell'elemento in corrispondenza dell'indice specificato in una matrice del tipo specificato.

WriteByte(IntPtr, Byte)

Scrive un valore a singolo byte nella memoria non gestita.

WriteByte(IntPtr, Int32, Byte)

Scrive un valore a singolo byte nella memoria non gestita a un offset specifico.

WriteByte(Object, Int32, Byte)
Obsoleti.

Scrive un valore a singolo byte nella memoria non gestita a un offset specifico.

WriteInt16(IntPtr, Char)

Scrive un carattere sotto forma di intero a 16 bit nella memoria non gestita.

WriteInt16(IntPtr, Int16)

Scrive un valore intero a 16 bit nella memoria non gestita.

WriteInt16(IntPtr, Int32, Char)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt16(IntPtr, Int32, Int16)

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt16(Object, Int32, Char)
Obsoleti.

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt16(Object, Int32, Int16)
Obsoleti.

Scrive un intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt32(IntPtr, Int32)

Scrive un valore intero con segno a 32 bit nella memoria non gestita.

WriteInt32(IntPtr, Int32, Int32)

Scrive un Intero con segno a 32 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt32(Object, Int32, Int32)
Obsoleti.

Scrive un Intero con segno a 32 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt64(IntPtr, Int32, Int64)

Scrive un Intero con segno a 64 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt64(IntPtr, Int64)

Scrive un valore intero con segno a 64 bit nella memoria non gestita.

WriteInt64(Object, Int32, Int64)
Obsoleti.

Scrive un Intero con segno a 64 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteIntPtr(IntPtr, Int32, IntPtr)

Scrive un intero di dimensioni native del processore nella memoria non gestita in corrispondenza di un offset specificato.

WriteIntPtr(IntPtr, IntPtr)

Scrive un valore intero della dimensione nativa del processore nella memoria non gestita.

WriteIntPtr(Object, Int32, IntPtr)
Obsoleti.

Scrive un valore intero della dimensione nativa del processore nella memoria non gestita.

ZeroFreeBSTR(IntPtr)

Libera un puntatore BSTR allocato usando il metodo SecureStringToBSTR(SecureString).

ZeroFreeCoTaskMemAnsi(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToCoTaskMemAnsi(SecureString).

ZeroFreeCoTaskMemUnicode(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToCoTaskMemUnicode(SecureString).

ZeroFreeCoTaskMemUTF8(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo StringToCoTaskMemUTF8(String).

ZeroFreeGlobalAllocAnsi(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToGlobalAllocAnsi(SecureString).

ZeroFreeGlobalAllocUnicode(IntPtr)

Libera un puntatore a una stringa non gestita allocato tramite il metodo SecureStringToGlobalAllocUnicode(SecureString).

Si applica a