Condividi tramite


Marshal Classe

Definizione

Fornisce una raccolta di metodi per l'allocazione di memoria non gestita, la copia di blocchi di memoria non gestiti e la conversione in tipi non gestiti, nonché altri metodi esterni utilizzati 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 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

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 bridge 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 di interoperabilità.

I Read metodi e Write nella classe supportano sia l'accesso Marshal allineato che quello non allineato.

Campi

Nome Descrizione
SystemDefaultCharSize

Rappresenta le dimensioni predefinite del carattere nel sistema; il valore predefinito è 2 per i sistemi Unicode e 1 per i sistemi ANSI. Il campo è di sola lettura.

SystemMaxDBCSCharSize

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

Metodi

Nome Descrizione
AddRef(IntPtr)

Incrementa il conteggio dei riferimenti sull'interfaccia specificata.

AllocCoTaskMem(Int32)

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

AllocHGlobal(Int32)

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

AllocHGlobal(IntPtr)

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

AreComObjectsAvailableForCleanup()

Indica se i wrapper chiamabili in fase di esecuzione (RCW) da qualsiasi contesto sono disponibili per la pulizia.

BindToMoniker(String)

Ottiene un puntatore di interfaccia identificato dal moniker specificato.

ChangeWrapperHandleStrength(Object, Boolean)

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

CleanupUnusedObjectsInCurrentContext()

Notifica al runtime di pulire tutti i runtime Callable Wrapper (RCW) allocati nel contesto corrente.

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

Copia i dati da una matrice unsigned integer a 8 bit gestita a un puntatore alla memoria non gestita.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copia i dati da un puntatore alla memoria non gestita in una matrice gestita IntPtr .

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

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

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

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

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

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

CreateAggregatedObject(IntPtr, Object)
Obsoleti.

Aggrega un oggetto gestito con l'oggetto COM specificato.

CreateAggregatedObject<T>(IntPtr, T)

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

CreateWrapperOfType(Object, Type)
Obsoleti.

Esegue il wrapping dell'oggetto COM specificato in un oggetto del tipo specificato.

CreateWrapperOfType<T,TWrapper>(T)

Esegue il wrapping dell'oggetto COM specificato in un oggetto del tipo specificato.

DestroyStructure(IntPtr, Type)
Obsoleti.

Libera tutte le sottostruttura a cui punta il blocco di memoria non gestito specificato.

DestroyStructure<T>(IntPtr)

Libera tutte le sottostruttura di un tipo specificato a cui punta il blocco di memoria non gestito specificato.

FinalReleaseComObject(Object)

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

FreeBSTR(IntPtr)

Libera un BSTR oggetto usando la funzione SYSFreeString COM.

FreeCoTaskMem(IntPtr)

Libera un blocco di memoria allocato dall'allocatore di memoria dell'attività COM non gestito.

FreeHGlobal(IntPtr)

Libera memoria allocata in precedenza dalla memoria non gestita del processo.

GenerateGuidForType(Type)

Restituisce l'identificatore univoco globale (GUID) per il tipo specificato oppure genera un GUID usando l'algoritmo utilizzato dall'utilità di esportazione della libreria dei tipi (Tlbexp.exe).

GenerateProgIdForType(Type)

Restituisce un identificatore programmatico (ProgID) per il tipo specificato.

GetActiveObject(String)

Ottiene un'istanza in esecuzione dell'oggetto specificato dalla tabella degli oggetti in esecuzione (ROT).

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Obsoleti.

Restituisce un puntatore a un'interfaccia IUnknown che rappresenta l'interfaccia specificata nell'oggetto specificato. L'accesso all'interfaccia di query personalizzata è controllato dalla modalità di personalizzazione specificata.

GetComInterfaceForObject(Object, Type)
Obsoleti.

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

GetComInterfaceForObject<T,TInterface>(T)

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

GetComInterfaceForObjectInContext(Object, Type)

Restituisce un puntatore all'interfaccia che rappresenta l'interfaccia specificata per un oggetto, se il chiamante si trova nello stesso contesto dell'oggetto.

GetComObjectData(Object, Object)

Recupera i dati a cui fa riferimento la chiave specificata dall'oggetto COM specificato.

GetComSlotForMethodInfo(MemberInfo)

Recupera lo slot della tabella delle funzioni virtuali (v-table o VTBL) per un tipo specificato MemberInfo quando tale tipo viene 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 nella tabella delle funzioni virtuali (v-table o VTBL) di un tipo quando viene esposto a COM.

GetExceptionCode()
Obsoleti.

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

GetExceptionForHR(Int32, Guid, IntPtr)

Fornisce una raccolta di metodi per l'allocazione di memoria non gestita, la copia di blocchi di memoria non gestiti e la conversione in tipi non gestiti, nonché altri metodi esterni utilizzati durante l'interazione con codice non gestito.

GetExceptionForHR(Int32, IntPtr)

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

GetExceptionForHR(Int32)

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

GetExceptionPointers()

Recupera una descrizione indipendente dal computer di un'eccezione e informazioni sullo stato esistente per il thread quando si è verificata l'eccezione.

GetFunctionPointerForDelegate(Delegate)
Obsoleti.

Converte un delegato in un puntatore a funzione chiamabile da codice non gestito.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

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

GetHINSTANCE(Module)

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

GetHRForException(Exception)

Converte l'eccezione specificata in hresult.

GetHRForLastWin32Error()

Restituisce il valore HRESULT corrispondente all'ultimo errore generato dal codice Win32 eseguito usando Marshal.

GetIDispatchForObject(Object)

Restituisce un'interfaccia IDispatch da un oggetto gestito.

GetIDispatchForObjectInContext(Object)

Restituisce un puntatore all'interfaccia IDispatch da un oggetto gestito, se il chiamante si trova nello 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 si trova nello stesso contesto dell'oggetto.

GetLastPInvokeError()

Ottiene l'ultimo errore platform invoke 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 di errore restituito dall'ultima funzione non gestita chiamata tramite platform invoke con il SetLastError flag impostato.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleti.

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

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Recupera un MemberInfo oggetto per lo slot v-table o VTBL (Virtual Function Table) specificato.

GetNativeVariantForObject(Object, IntPtr)
Obsoleti.

Converte un oggetto in un oggetto COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)
Obsoleti.

Converte un oggetto di un tipo specificato in un oggetto COM VARIANT.

GetObjectForIUnknown(IntPtr)

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

GetObjectForNativeVariant(IntPtr)
Obsoleti.

Converte un oggetto COM VARIANT in un oggetto .

GetObjectForNativeVariant<T>(IntPtr)
Obsoleti.

Converte un valore COM VARIANT in un oggetto di un tipo specificato.

GetObjectsForNativeVariants(IntPtr, Int32)
Obsoleti.

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

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Obsoleti.

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

GetPInvokeErrorMessage(Int32)

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

GetStartComSlot(Type)

Ottiene il primo slot nella tabella delle funzioni virtuali (v-table o VTBL) che contiene metodi definiti dall'utente.

GetThreadFromFiberCookie(Int32)
Obsoleti.

Converte un cookie fiber nell'istanza corrispondente 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 gestito Type .

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 l'identificatore di libreria (LIBID) di una libreria dei tipi.

GetTypeLibGuid(UCOMITypeLib)
Obsoleti.

Recupera l'identificatore di libreria (LIBID) di una libreria dei tipi.

GetTypeLibGuidForAssembly(Assembly)

Recupera l'identificatore di libreria (LIBID) assegnato a una libreria dei tipi quando è stato 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 dei tipi.

GetTypeLibName(UCOMITypeLib)
Obsoleti.

Recupera il nome di una libreria dei 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 una determinata interfaccia IUnknown .

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Obsoleti.

Ottiene un puntatore a una funzione generata dal runtime che effettua il marshalling di una chiamata da codice non gestito al 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 necessaria 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 di una classe gestita specificata.

Prelink(MethodInfo)

Esegue attività di installazione di metodi monouso senza chiamare il metodo .

PrelinkAll(Type)

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

PtrToStringAnsi(IntPtr, Int32)

Alloca un oggetto gestito String, copia un numero specificato di caratteri da una stringa ANSI o UTF-8 non gestita e estende ogni carattere a UTF-16.

PtrToStringAnsi(IntPtr)

Copia tutti i caratteri fino al primo carattere Null da una stringa ANSI o UTF-8 non gestita a un oggetto gestito Stringe estende ogni carattere a UTF-16.

PtrToStringAuto(IntPtr, Int32)

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

PtrToStringAuto(IntPtr)

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

PtrToStringBSTR(IntPtr)

Alloca una stringa binaria gestita (BSTR) archiviata in memoria non gestita.

PtrToStringUni(IntPtr, Int32)

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

PtrToStringUni(IntPtr)

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

PtrToStringUTF8(IntPtr, Int32)

Alloca un oggetto gestito String e copia un numero specificato di byte da una stringa UTF8 non gestita.

PtrToStringUTF8(IntPtr)

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

PtrToStructure(IntPtr, Object)
Obsoleti.

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

PtrToStructure(IntPtr, Type)
Obsoleti.

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

PtrToStructure<T>(IntPtr, T)

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

PtrToStructure<T>(IntPtr)

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

QueryInterface(IntPtr, Guid, IntPtr)

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

ReadByte(IntPtr, Int32)

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

ReadByte(IntPtr)

Legge un singolo byte dalla memoria non gestita.

ReadByte(Object, Int32)
Obsoleti.

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

ReadInt16(IntPtr, Int32)

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

ReadInt16(IntPtr)

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

ReadInt16(Object, Int32)
Obsoleti.

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

ReadInt32(IntPtr, Int32)

Legge un intero con segno a 32 bit in corrispondenza di un offset specificato dalla memoria non gestita.

ReadInt32(IntPtr)

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

ReadInt32(Object, Int32)
Obsoleti.

Legge un intero con segno a 32 bit in corrispondenza di un offset specificato dalla memoria non gestita.

ReadInt64(IntPtr, Int32)

Legge un intero con segno a 64 bit in corrispondenza di un offset specificato dalla memoria non gestita.

ReadInt64(IntPtr)

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

ReadInt64(Object, Int32)
Obsoleti.

Legge un intero con segno a 64 bit in corrispondenza di un offset specificato dalla memoria non gestita.

ReadIntPtr(IntPtr, Int32)

Legge un numero intero nativo del processore in corrispondenza di un offset specificato dalla memoria non gestita.

ReadIntPtr(IntPtr)

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

ReadIntPtr(Object, Int32)
Obsoleti.

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

ReAllocCoTaskMem(IntPtr, Int32)

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

ReAllocHGlobal(IntPtr, IntPtr)

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

Release(IntPtr)

Decrementa il conteggio dei riferimenti sull'interfaccia specificata.

ReleaseComObject(Object)

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

ReleaseThreadCache()
Obsoleti.

Rilascia la cache dei thread.

SecureStringToBSTR(SecureString)

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

SecureStringToCoTaskMemAnsi(SecureString)

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

SecureStringToCoTaskMemUnicode(SecureString)

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

SecureStringToGlobalAllocAnsi(SecureString)

Copia il contenuto di un oggetto gestito SecureString in memoria non gestita, convertendo in formato ANSI durante la copia.

SecureStringToGlobalAllocUnicode(SecureString)

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

SetComObjectData(Object, Object, Object)

Imposta i dati a cui 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 le dimensioni non gestite di un oggetto in byte.

SizeOf(Type)
Obsoleti.

Restituisce le dimensioni di un tipo non gestito in byte.

SizeOf<T>()

Restituisce le dimensioni di un tipo non gestito in byte.

SizeOf<T>(T)

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

StringToBSTR(String)

Alloca una stringa BSTR e copia il contenuto di un oggetto gestito String .

StringToCoTaskMemAnsi(String)

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

StringToCoTaskMemAuto(String)

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

StringToCoTaskMemUni(String)

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

StringToCoTaskMemUTF8(String)

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

StringToHGlobalAnsi(String)

Copia il contenuto di un oggetto gestito String in memoria non gestita, convertendo in formato ANSI durante la copia.

StringToHGlobalAuto(String)

Copia il contenuto di un oggetto gestito String in memoria non gestita, convertendo in formato ANSI, se necessario.

StringToHGlobalUni(String)

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

StructureToPtr(Object, IntPtr, Boolean)
Obsoleti.

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

StructureToPtr<T>(T, IntPtr, Boolean)

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

ThrowExceptionForHR(Int32, Guid, IntPtr)

Fornisce una raccolta di metodi per l'allocazione di memoria non gestita, la copia di blocchi di memoria non gestiti e la conversione in tipi non gestiti, nonché altri metodi esterni utilizzati durante l'interazione con codice non gestito.

ThrowExceptionForHR(Int32, IntPtr)

Genera un'eccezione con un HRESULT di errore specifico, in base all'interfaccia IErrorInfo specificata.

ThrowExceptionForHR(Int32)

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

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 di un tipo specificato.

WriteByte(IntPtr, Byte)

Scrive un singolo valore di byte nella memoria non gestita.

WriteByte(IntPtr, Int32, Byte)

Scrive un singolo valore di byte nella memoria non gestita in corrispondenza di un offset specificato.

WriteByte(Object, Int32, Byte)
Obsoleti.

Scrive un singolo valore di byte nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt16(IntPtr, Char)

Scrive un carattere come valore 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 valore intero con segno a 16 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteInt16(IntPtr, Int32, Int16)

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

WriteInt16(Object, Int32, Char)
Obsoleti.

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

WriteInt16(Object, Int32, Int16)
Obsoleti.

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

WriteInt32(IntPtr, Int32, Int32)

Scrive un valore intero con segno a 32 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(Object, Int32, Int32)
Obsoleti.

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

WriteInt64(IntPtr, Int32, Int64)

Scrive un valore 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 valore intero con segno a 64 bit nella memoria non gestita in corrispondenza di un offset specificato.

WriteIntPtr(IntPtr, Int32, IntPtr)

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

WriteIntPtr(IntPtr, IntPtr)

Scrive un valore intero di dimensioni native del processore in memoria non gestita.

WriteIntPtr(Object, Int32, IntPtr)
Obsoleti.

Scrive un valore intero di dimensioni native del processore nella memoria non gestita.

ZeroFreeBSTR(IntPtr)

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

ZeroFreeCoTaskMemAnsi(IntPtr)

Libera un puntatore di stringa non gestito allocato usando il SecureStringToCoTaskMemAnsi(SecureString) metodo .

ZeroFreeCoTaskMemUnicode(IntPtr)

Libera un puntatore di stringa non gestito allocato usando il SecureStringToCoTaskMemUnicode(SecureString) metodo .

ZeroFreeCoTaskMemUTF8(IntPtr)

Libera un puntatore di stringa non gestito allocato usando il StringToCoTaskMemUTF8(String) metodo .

ZeroFreeGlobalAllocAnsi(IntPtr)

Libera un puntatore di stringa non gestito allocato usando il SecureStringToGlobalAllocAnsi(SecureString) metodo .

ZeroFreeGlobalAllocUnicode(IntPtr)

Libera un puntatore di stringa non gestito allocato usando il SecureStringToGlobalAllocUnicode(SecureString) metodo .

Si applica a