Freigeben über


Marshal.AllocHGlobal-Methode: (Int32)

 

Veröffentlicht: Oktober 2016

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mit der angegebenen Anzahl von Bytes.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

Syntax

[SecurityCriticalAttribute]
public static IntPtr AllocHGlobal(
    int cb
)
public:
[SecurityCriticalAttribute]
static IntPtr AllocHGlobal(
    int cb
)
[<SecurityCriticalAttribute>]
static member AllocHGlobal : 
        cb:int -> nativeint
<SecurityCriticalAttribute>
Public Shared Function AllocHGlobal (
    cb As Integer
) As IntPtr

Parameter

  • cb
    Type: System.Int32

    Die erforderliche Anzahl der Bytes im Speicher.

Rückgabewert

Type: System.IntPtr

Ein Zeiger auf den neu reservierten Speicher. Dieser Speicher muss unter Verwendung der Marshal.FreeHGlobal-Methode freigegeben werden.

Ausnahmen

Exception Condition
OutOfMemoryException

Es ist nicht genügend Arbeitsspeicher zum Erfüllen der Anforderung vorhanden.

Hinweise

AllocHGlobal ist eine der beiden Methoden der Speicher-Zuordnung in der Marshal Klasse. (Marshal.AllocCoTaskMem die andere ist.) Diese Methode macht die Win32 LocalAlloc -Funktion von Kernel32.dll.

Wenn AllocHGlobal Aufrufe LocalAlloc, übergibt ein LMEM_FIXED -Flag, das bewirkt, dass den reservierten Arbeitsspeicher gesperrt. Darüber hinaus ist der belegten Speicher nicht 0 (null)-ausgefüllt.

Beispiele

Das folgende Beispiel veranschaulicht den Aufruf der AllocHGlobalMethode. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die Marshal Klasse.

// 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)
// Demonstrate how to call GlobalAlloc and 
// GlobalFree using the Marshal class.
IntPtr hglobal = Marshal::AllocHGlobal(100);
Marshal::FreeHGlobal(hglobal);

Sicherheit

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Versionsinformationen

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1

Siehe auch

AllocCoTaskMem
FreeHGlobal
AllocHGlobal Überladen
Marshal-Klasse
System.Runtime.InteropServices-Namespace

Zurück zum Anfang