Marshal.AllocHGlobal Metodo

Definizione

Alloca memoria dalla memoria non gestita del processo.Allocates memory from the unmanaged memory of the process.

Overload

AllocHGlobal(Int32)

Alloca memoria dalla memoria non gestita del processo tramite il numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

Alloca memoria dalla memoria non gestita del processo tramite il puntatore al numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AllocHGlobal(Int32)

Alloca memoria dalla memoria non gestita del processo tramite il numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

public:
 static IntPtr AllocHGlobal(int cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal (int cb);
static member AllocHGlobal : int -> nativeint
Public Shared Function AllocHGlobal (cb As Integer) As IntPtr

Parametri

cb
Int32

Numero di byte necessari nella memoria.The required number of bytes in memory.

Restituisce

Puntatore alla memoria appena allocata.A pointer to the newly allocated memory. Questa memoria deve essere liberata usando il metodo FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.There is insufficient memory to satisfy the request.

Esempi

Nel codice riportato di seguito viene illustrata la chiamata al metodo AllocHGlobal.The following example demonstrates calling the AllocHGlobal method. Questo esempio di codice fa parte di un esempio più ampio fornito per la classe Marshal.This code example is part of a larger example provided for the Marshal class.

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

Commenti

AllocHGlobal è uno dei due metodi di allocazione della memoria nella classe Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem è l'altro). Questo metodo espone la funzione Win32 LocalAlloc da Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Quando AllocHGlobal chiama LocalAlloc, passa un flag di LMEM_FIXED che causa il blocco della memoria allocata.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Inoltre, la memoria allocata non viene riempita con zero.Also, the allocated memory is not zero-filled.

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.requires full trust for the immediate caller. Questo membro non può essere utilizzato da codice parzialmente attendibile o trasparente.This member cannot be used by partially trusted or transparent code.

Vedi anche

AllocHGlobal(IntPtr)

Alloca memoria dalla memoria non gestita del processo tramite il puntatore al numero specificato di byte.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

public:
 static IntPtr AllocHGlobal(IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal (IntPtr cb);
static member AllocHGlobal : nativeint -> nativeint
Public Shared Function AllocHGlobal (cb As IntPtr) As IntPtr

Parametri

cb
IntPtr

Numero di byte necessari nella memoria.The required number of bytes in memory.

Restituisce

Puntatore alla memoria appena allocata.A pointer to the newly allocated memory. Questa memoria deve essere liberata usando il metodo FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.There is insufficient memory to satisfy the request.

Commenti

AllocHGlobal è uno dei due metodi di allocazione della memoria nella classe Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem è l'altro). Questo metodo espone la funzione Win32 LocalAlloc da Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Quando AllocHGlobal chiama LocalAlloc, passa un flag di LMEM_FIXED che causa il blocco della memoria allocata.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Inoltre, la memoria allocata non viene riempita con zero.Also, the allocated memory is not zero-filled.

Per vedere un codice di esempio, vedere Marshal e AllocHGlobal.For example code, see Marshal and AllocHGlobal.

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.requires full trust for the immediate caller. Questo membro non può essere utilizzato da codice parzialmente attendibile o trasparente.This member cannot be used by partially trusted or transparent code.

Vedi anche

Si applica a