Aracılığıyla paylaş


C6332

C6332 Uyarı: Geçersiz parametre: <function> için sıfır dwFreeType parametre olarak geçirerek izin verilmez.Bu, bu görüşme hatasına neden olur

Bu uyarı, geçersiz bir parametre VirtualFree veya VirtualFreeEx geçirilen olmadığını gösterir.VirtualFree ve VirtualFreeEx dwFreeType parametresi sıfır reddet.DwFreeType parametresi, MEM_DECOMMIT veya mem_release olabilir.Ancak, MEM_DECOMMIT ve mem_release değerleri birlikte aynı çağrıda kullanılabilir değil.Ayrıca, VirtualFree işlevinin dönüş değeri yok sayılır emin olun.

Örnek

Aşağıdaki kod VirtualFree işlevine geçersiz bir parametre geçtiğinden bu uyarı oluşturur:

#include <windows.h>
#define PAGELIMIT 80            

DWORD dwPages = 0;  // count of pages 
DWORD dwPageSize;   // page size 

VOID f( VOID )
{
  LPVOID lpvBase;            // base address of the test memory
  BOOL bSuccess;           
  SYSTEM_INFO sSysInfo;      // system information

  GetSystemInfo( &sSysInfo );  
  dwPageSize = sSysInfo.dwPageSize;

  // Reserve pages in the process's virtual address space
  lpvBase = VirtualAlloc(
                         NULL,                // system selects address
                         PAGELIMIT*dwPageSize, // size of allocation
                         MEM_RESERVE,        
                         PAGE_NOACCESS );     
  if (lpvBase)
  {
    // code to access memory 
  }
  else
  {
    return;
  }

  bSuccess = VirtualFree( lpvBase, 0, 0 ); 
  // code ...
}

Bu uyarı düzeltmek için VirtualFree işlevi çağrısı aşağıdaki kodda gösterildiği gibi değiştirin:

#include <windows.h>
#define PAGELIMIT 80            

DWORD dwPages = 0;  // count of pages 
DWORD dwPageSize;   // page size 

VOID f( VOID )
{
  LPVOID lpvBase;            // base address of the test memory
  BOOL bSuccess;           
  SYSTEM_INFO sSysInfo;      // system information

  GetSystemInfo( &sSysInfo );  
  dwPageSize = sSysInfo.dwPageSize;

  // Reserve pages in the process's virtual address space
  lpvBase = VirtualAlloc(
                         NULL,                // system selects address
                         PAGELIMIT*dwPageSize, // size of allocation
                         MEM_RESERVE,        
                         PAGE_NOACCESS );     
  if (lpvBase)
  {
    // code to access memory 
  }
  else
  {
    return;
  }

  bSuccess = VirtualFree( lpvBase, 0, MEM_RELEASE );
  // code ...
} 

Ayrıca bkz.

Başvuru

IHostMemoryManager::VirtualAlloc yöntemi

IHostMemoryManager::VirtualFree yöntemi