Udostępnij za pośrednictwem


IHostMemoryManager::VirtualAlloc — Metoda

Służy jako logiczna otoka dla odpowiedniej funkcji Win32. Implementacja VirtualAlloc win32 rezerw lub zatwierdza region stron w wirtualnej przestrzeni adresowej procesu wywołującego.

Składnia

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

Parametry

pAddress
[w] Wskaźnik do adresu początkowego regionu do przydzielenia.

dwSize
[w] Rozmiar w bajtach regionu.

flAllocationType
[w] Typ alokacji pamięci.

flProtect
[w] Ochrona pamięci dla regionu stron do przydzielenia.

dwCriticalLevel
[w] Wartość EMemoryCriticalLevel wskazująca wpływ awarii alokacji.

ppMem
[out] Wskaż adres początkowy przydzielonej pamięci lub wartość null, jeśli żądanie nie może być spełnione.

Wartość zwracana

HRESULT Opis
S_OK VirtualAlloc zwrócono pomyślnie.
HOST_E_CLRNOTAVAILABLE Środowisko uruchomieniowe języka wspólnego (CLR) nie zostało załadowane do procesu lub CLR jest w stanie, w którym nie może uruchomić kodu zarządzanego ani pomyślnie przetworzyć wywołania.
HOST_E_TIMEOUT Upłynął limit czasu wywołania.
HOST_E_NOT_OWNER Obiekt wywołujący nie jest właścicielem blokady.
HOST_E_ABANDONED Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie.
E_FAIL Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Za mało pamięci było dostępne, aby ukończyć żądanie alokacji

Uwagi

Region należy zarezerwować w przestrzeni adresowej procesu przez wywołanie metody VirtualAlloc. Parametr pAddress zawiera początkowy adres żądanego bloku pamięci. Ten parametr jest zwykle ustawiony na wartość null. System operacyjny przechowuje rekord wolnych zakresów adresów dostępnych dla procesu. pAddress Wartość null nakazuje systemowi rezerwowanie regionu wszędzie tam, gdzie jest ona widoczna. Alternatywnie można podać określony adres początkowy bloku pamięci. W obu przypadkach parametr ppMem wyjściowy jest zwracany jako wskaźnik do przydzielonej pamięci. Sama funkcja zwraca wartość HRESULT.

Funkcja Win32 VirtualAlloc nie ma parametru ppMem i zwraca wskaźnik do przydzielonej pamięci. Aby uzyskać więcej informacji, zobacz dokumentację platformy systemu Windows.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteki: Uwzględnione jako zasób w MSCorEE.dll

.NET Framework wersje: dostępne od wersji 2.0

Zobacz też