Marshal.AllocHGlobal Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 AllocHGlobalLocalAlloc
aufruft, 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
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 AllocHGlobalLocalAlloc
aufruft, 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.