Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include <windows.h>
//=--------------------------------------------------------------------------=
// Function name here
//=--------------------------------------------------------------------------=
// Function description
//
// Parameters:
//
// Returns:
//
// Notes:
//
// Checks the install destination dir free disk space
//
DWORD GetSpace( LPSTR szPath ) { DWORD dwSecsPerCluster = 0; DWORD dwBytesPerSector = 0; DWORD dwFreeClusters = 0; DWORD dwTotalClusters = 0; DWORD dwClusterSize = 0; DWORD dwFreeBytes = 0; DWORD dwVolFlags = 0;
if( szPath[0] == 0) return 0;
if ( ! GetDiskFreeSpace( szPath, &dwSecsPerCluster, &dwBytesPerSector, &dwFreeClusters, &dwTotalClusters ) ) { return( 0 ); }
dwClusterSize = dwBytesPerSector * dwSecsPerCluster; dwFreeBytes = MulDiv(dwClusterSize, dwFreeClusters, 1024); return dwFreeBytes; }
//=--------------------------------------------------------------------------=
// Function name here
//=--------------------------------------------------------------------------=
// Function description
//
// Parameters:
//
// Returns:
//
// Notes:
//
// Checks the install destination dir free disk space
//
DWORD GetDriveSize( LPSTR szPath ) { DWORD dwSecsPerCluster = 0; DWORD dwBytesPerSector = 0; DWORD dwFreeClusters = 0; DWORD dwTotalClusters = 0; DWORD dwClusterSize = 0; DWORD dwFreeBytes = 0; DWORD dwVolFlags = 0;
if( szPath[0] == 0) return 0;
if ( ! GetDiskFreeSpace( szPath, &dwSecsPerCluster, &dwBytesPerSector, &dwFreeClusters, &dwTotalClusters ) ) { return( 0 ); }
dwClusterSize = dwBytesPerSector * dwSecsPerCluster; dwFreeBytes = MulDiv(dwClusterSize, dwTotalClusters, 1024); return dwFreeBytes; }
//=--------------------------------------------------------------------------=
// Function name here
//=--------------------------------------------------------------------------=
// Function description
//
// Parameters:
//
// Returns:
//
// Notes:
//
// Checks the given path drive free space and the current cluster size
//
DWORD GetDrvFreeSpaceAndClusterSize( LPSTR szPath, LPDWORD lpdwClustSize ) { DWORD dwSecsPerCluster = 0; DWORD dwBytesPerSector = 0; DWORD dwFreeClusters = 0; DWORD dwTotalClusters = 0; DWORD dwClusterSize = 0; DWORD dwFreeBytes = 0; DWORD dwVolFlags = 0;
// if szPath is NULL, the current directory root will be used by the API
if ( ! GetDiskFreeSpace( szPath, &dwSecsPerCluster, &dwBytesPerSector, &dwFreeClusters, &dwTotalClusters ) ) { return( 0 ); }
dwClusterSize = dwBytesPerSector * dwSecsPerCluster; dwFreeBytes = MulDiv(dwClusterSize, dwFreeClusters, 1024); if (lpdwClustSize) *lpdwClustSize = dwClusterSize;
return dwFreeBytes; }
|