Marshal.ReAllocHGlobal(IntPtr, IntPtr) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ändrar storlek på ett minnesblock som tidigare allokerats med AllocHGlobal(IntPtr).
public:
static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
public static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
[<System.Security.SecurityCritical>]
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
Public Shared Function ReAllocHGlobal (pv As IntPtr, cb As IntPtr) As IntPtr
Parametrar
- pv
-
IntPtr
nativeint
En pekare till minne som allokerats med AllocHGlobal(IntPtr).
- cb
-
IntPtr
nativeint
Den nya storleken på det allokerade blocket. Det här är inte en pekare. det är byteantalet som du begär, gjutet för att skriva IntPtr. Om du skickar en pekare behandlas den som en storlek.
Returer
nativeint
En pekare till det omallokerade minnet. Det här minnet måste frigöras med hjälp av FreeHGlobal(IntPtr).
- Attribut
Undantag
Det finns inte tillräckligt med minne för att uppfylla begäran.
Kommentarer
Important
Den här interna minnesallokeraren är ett äldre API som ska användas exklusivt när det anropas av specifika Win32-API:er på Windows-plattformen. När du riktar in dig på .NET 6 eller senare använder du klassen NativeMemory på alla plattformar för att allokera inbyggt minne. När du riktar in dig på .NET Framework använder du AllocCoTaskMem på alla plattformar för att allokera inbyggt minne.
ReAllocHGlobal är en av två API-metoder för minnesallokering i Marshal klassen. (Marshal.ReAllocCoTaskMem är den andra.)
Den här metoden exponerar funktionen Win32 GlobalReAlloc från Kernel32.dll. Den returnerade pekaren kan skilja sig från originalet. Om det är annorlunda har innehållet i det ursprungliga minnesblocket kopierats till det nya blocket och det ursprungliga minnesblocket har frigjorts.