Marshal.AllocHGlobal Método

Definição

Aloca memória da memória não gerenciada do processo.Allocates memory from the unmanaged memory of the process.

Sobrecargas

AllocHGlobal(Int32)

Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

Aloca memória de memória não gerenciada do processo usando o ponteiro para o número de bytes especificado.Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AllocHGlobal(Int32)

Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.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

Parâmetros

cb
Int32

O número necessário de bytes na memória.The required number of bytes in memory.

Retornos

Um ponteiro para a memória recém-alocada.A pointer to the newly allocated memory. Essa memória deve ser liberada usando o método FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Atributos

Exceções

Não há memória suficiente para satisfazer a solicitação.There is insufficient memory to satisfy the request.

Exemplos

O exemplo a seguir demonstra como chamar o método AllocHGlobal.The following example demonstrates calling the AllocHGlobal method. Este exemplo de código faz parte de um exemplo maior fornecido para a 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)

Comentários

AllocHGlobal é um dos dois métodos de alocação de memória na classe Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem é o outro.) Esse método expõe a função LocalAlloc do Win32 de Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Quando AllocHGlobal chama LocalAlloc, ele passa um sinalizador LMEM_FIXED, o que faz com que a memória alocada seja bloqueada no local.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Além disso, a memória alocada não é preenchida com zero.Also, the allocated memory is not zero-filled.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Veja também

AllocHGlobal(IntPtr)

Aloca memória de memória não gerenciada do processo usando o ponteiro para o número de bytes especificado.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

Parâmetros

cb
IntPtr

O número necessário de bytes na memória.The required number of bytes in memory.

Retornos

Um ponteiro para a memória recém-alocada.A pointer to the newly allocated memory. Essa memória deve ser liberada usando o método FreeHGlobal(IntPtr).This memory must be released using the FreeHGlobal(IntPtr) method.

Atributos

Exceções

Não há memória suficiente para satisfazer a solicitação.There is insufficient memory to satisfy the request.

Comentários

AllocHGlobal é um dos dois métodos de alocação de memória na classe Marshal.AllocHGlobal is one of two memory allocation methods in the Marshal class. (Marshal.AllocCoTaskMem é o outro.) Esse método expõe a função LocalAlloc do Win32 de Kernel32. dll.(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

Quando AllocHGlobal chama LocalAlloc, ele passa um sinalizador LMEM_FIXED, o que faz com que a memória alocada seja bloqueada no local.When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. Além disso, a memória alocada não é preenchida com zero.Also, the allocated memory is not zero-filled.

Para obter um exemplo de código, consulte Marshal e AllocHGlobal.For example code, see Marshal and AllocHGlobal.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Veja também

Aplica-se a