Aracılığıyla paylaş


IHostMemoryManager::VirtualAlloc Yöntemi

Karşılık gelen Win32 işlevi için mantıksal sarmalayıcı işlevi görür. Win32 uygulaması, çağrı işleminin VirtualAlloc sanal adres alanında sayfaların bir bölgesini ayırır veya işler.

Sözdizimi

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

Parametreler

pAddress
[in] Ayrılacak bölgenin başlangıç adresinin işaretçisi.

dwSize
[in] Bölgenin bayt cinsinden boyutu.

flAllocationType
[in] Bellek ayırma türü.

flProtect
[in] Ayrılacak sayfaların bölgesi için bellek koruması.

dwCriticalLevel
[in] Ayırma hatasının etkisini gösteren bir EMemoryCriticalLevel değeri.

ppMem
[out] Ayrılan belleğin başlangıç adresinin işaretçisi veya istek karşılanamadıysa null.

Dönüş Değeri

HRESULT Description
S_OK VirtualAlloc başarıyla döndürüldü.
HOST_E_CLRNOTAVAILABLE Ortak dil çalışma zamanı (CLR) bir işleme yüklenmemiş veya CLR yönetilen kodu çalıştıramadığı veya çağrıyı başarıyla işleyemediği bir durumda.
HOST_E_TIMEOUT Arama zaman aşımına uğradı.
HOST_E_NOT_OWNER Çağıranın kilidi yoktur.
HOST_E_ABANDONED Engellenen bir iş parçacığı veya fiber beklerken bir olay iptal edildi.
E_FAIL Bilinmeyen bir yıkıcı hata oluştu. Bir yöntem E_FAIL döndürdüğünde, CLR artık işlem içinde kullanılamaz. Barındırma yöntemlerine yapılan sonraki çağrılar HOST_E_CLRNOTAVAILABLE döndürür.
E_OUTOFMEMORY Ayırma isteğini tamamlamak için yeterli bellek yoktu

Açıklamalar

çağrısı VirtualAllocyaparak işleminizin adres alanında bir bölge ayırabilirsiniz. pAddress parametresi, istediğiniz bellek bloğunun başlangıç adresini içerir. Bu parametre genellikle null olarak ayarlanır. İşletim sistemi, işleminizde kullanılabilen ücretsiz adres aralıklarının kaydını tutar. pAddress null değeri sisteme uygun gördüğü her yerde bölgeyi ayırmasını emreder. Alternatif olarak, bellek bloğu için belirli bir başlangıç adresi sağlayabilirsiniz. Her iki durumda da çıkış parametresi ppMem ayrılan belleğin işaretçisi olarak döndürülür. İşlevin kendisi bir HRESULT değeri döndürür.

Win32 VirtualAlloc işlevinin bir ppMem parametresi yoktur ve bunun yerine ayrılan belleğin işaretçisini döndürür. Daha fazla bilgi için Windows Platformu belgelerine bakın.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: MSCorEE.h

Kitaplığı: MSCorEE.dll'da kaynak olarak dahil edilen

.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir

Ayrıca bkz.