Freigeben über


Marshal.AllocHGlobal Methode

Definition

Ordnet Speicher aus dem nicht verwalteten Speicher des Prozesses zu.

Überlädt

AllocHGlobal(Int32)

Ordnet Speicher aus dem nicht verwalteten Speicher des Prozesses mithilfe der angegebenen Anzahl von Bytes zu.

AllocHGlobal(IntPtr)

Weist Speicher aus dem nicht verwalteten Speicher des Prozesses zu, indem der Zeiger auf die angegebene Anzahl von Bytes verwendet wird.

AllocHGlobal(Int32)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Ordnet Speicher aus dem nicht verwalteten Speicher des Prozesses mithilfe der angegebenen Anzahl von Bytes zu.

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

Parameter

cb
Int32

Die erforderliche Anzahl von Bytes im Arbeitsspeicher.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf den neu zugewiesenen Speicher. Dieser Speicher muss mit der FreeHGlobal(IntPtr)-Methode freigegeben werden.

Attribute

Ausnahmen

Es ist nicht genügend Arbeitsspeicher vorhanden, um die Anforderung zu erfüllen.

Beispiele

Im folgenden Beispiel wird das Aufrufen der AllocHGlobal-Methode veranschaulicht. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die Marshal-Klasse bereitgestellt wird.

// 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)

Hinweise

Wichtig

Diese systemeigene Speicherverknürung ist eine Legacy-API, die ausschließlich verwendet werden sollte, wenn sie von bestimmten Win32-APIs auf der Windows-Plattform aufgerufen wird. Verwenden Sie bei der Zielbestimmung von .NET 6 oder höher die NativeMemory Klasse auf allen Plattformen, um nativen Speicher zuzuweisen. Verwenden Sie bei der Zielbestimmung von .NET 6 oder einer früheren Version AllocCoTaskMem auf allen Plattformen, um nativen Speicher zuzuweisen.

AllocHGlobal ist eine von zwei Speicherzuordnungsmethoden in der Marshal Klasse. (Marshal.AllocCoTaskMem ist die andere.) Diese Methode macht die Funktion "Win32 LocalAlloc" aus Kernel32.dllverfügbar.

Wenn AllocHGlobalLocalAllocaufruft, wird ein LMEM_FIXED Flag übergeben, wodurch der zugewiesene Speicher gesperrt wird. Außerdem ist der zugewiesene Speicher nicht null gefüllt.

Weitere Informationen

Gilt für:

AllocHGlobal(IntPtr)

Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs

Weist Speicher aus dem nicht verwalteten Speicher des Prozesses zu, indem der Zeiger auf die angegebene Anzahl von Bytes verwendet wird.

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

Parameter

cb
IntPtr

nativeint

Die erforderliche Anzahl von Bytes im Arbeitsspeicher.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf den neu zugewiesenen Speicher. Dieser Speicher muss mit der FreeHGlobal(IntPtr)-Methode freigegeben werden.

Attribute

Ausnahmen

Es ist nicht genügend Arbeitsspeicher vorhanden, um die Anforderung zu erfüllen.

Hinweise

Wichtig

Diese systemeigene Speicherverknürung ist eine Legacy-API, die ausschließlich verwendet werden sollte, wenn sie von bestimmten Win32-APIs auf der Windows-Plattform aufgerufen wird. Verwenden Sie bei der Zielbestimmung von .NET 6 oder höher die NativeMemory Klasse auf allen Plattformen, um nativen Speicher zuzuweisen. Verwenden Sie bei der Zielbestimmung von .NET 6 oder einer früheren Version AllocCoTaskMem auf allen Plattformen, um nativen Speicher zuzuweisen.

AllocHGlobal ist eine von zwei Speicherzuordnungsmethoden in der Marshal Klasse. (Marshal.AllocCoTaskMem ist die andere.) Diese Methode macht die Funktion "Win32 LocalAlloc" aus Kernel32.dllverfügbar.

Wenn AllocHGlobalLocalAllocaufruft, wird ein LMEM_FIXED Flag übergeben, wodurch der zugewiesene Speicher gesperrt wird. Außerdem ist der zugewiesene Speicher nicht null gefüllt.

Beispielcode finden Sie unter Marshal und AllocHGlobal.

Weitere Informationen

Gilt für: