Marshal.AllocHGlobal Method

Definition

Asigna memoria de la memoria no administrada del proceso.Allocates memory from the unmanaged memory of the process.

Overloads

AllocHGlobal(Int32)

Asigna memoria de la memoria no administrada del proceso utilizando el número especificado de bytes.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

Asigna memoria de la memoria no administrada del proceso utilizando el puntero al número especificado de bytes.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AllocHGlobal(Int32)

Asigna memoria de la memoria no administrada del proceso utilizando el número especificado de bytes.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);
public static IntPtr AllocHGlobal (int cb);
static member AllocHGlobal : int -> nativeint
Public Shared Function AllocHGlobal (cb As Integer) As IntPtr

Parameters

cb
Int32

Número necesario de bytes en memoria.The required number of bytes in memory.

Returns

IntPtr

Puntero a la memoria recién asignada.A pointer to the newly allocated memory. Debe liberarse esta memoria con el método FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Attributes

Exceptions

No hay memoria suficiente para satisfacer la solicitud.There is insufficient memory to satisfy the request.

Examples

En el ejemplo siguiente se muestra la forma de llamar al método AllocHGlobal.The following example demonstrates calling the AllocHGlobal method. Este ejemplo de código forma parte de un ejemplo más extenso proporcionado para la clase 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)

Remarks

AllocHGlobal es uno de los dos métodos de asignación de memoria de la clase Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem es el otro). Este método expone la función LocalAlloc de Win32 de Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Cuando AllocHGlobal llama a LocalAlloc, pasa una marca de LMEM_FIXED, lo que hace que la memoria asignada se bloquee en su lugar.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Además, la memoria asignada no se rellena con ceros.Also, the allocated memory is not zero-filled.

See also

AllocHGlobal(IntPtr)

Asigna memoria de la memoria no administrada del proceso utilizando el puntero al número especificado de bytes.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);
public static IntPtr AllocHGlobal (IntPtr cb);
static member AllocHGlobal : nativeint -> nativeint
Public Shared Function AllocHGlobal (cb As IntPtr) As IntPtr

Parameters

cb
IntPtr

Número necesario de bytes en memoria.The required number of bytes in memory.

Returns

IntPtr

Puntero a la memoria recién asignada.A pointer to the newly allocated memory. Debe liberarse esta memoria con el método FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Attributes

Exceptions

No hay memoria suficiente para satisfacer la solicitud.There is insufficient memory to satisfy the request.

Remarks

AllocHGlobal es uno de los dos métodos de asignación de memoria de la clase Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem es el otro). Este método expone la función LocalAlloc de Win32 de Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Cuando AllocHGlobal llama a LocalAlloc, pasa una marca de LMEM_FIXED, lo que hace que la memoria asignada se bloquee en su lugar.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Además, la memoria asignada no se rellena con ceros.Also, the allocated memory is not zero-filled.

Para obtener código de ejemplo, vea Marshal y AllocHGlobal.For example code, see Marshal and AllocHGlobal.

See also

Applies to