Ignore:
Timestamp:
May 20, 2000, 3:30:27 PM (25 years ago)
Author:
sandervl
Message:

Implemented GetDiskFreeSpaceExA/W

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/disk.cpp

    r3264 r3577  
    1 /* $Id: disk.cpp,v 1.10 2000-03-28 17:24:27 sandervl Exp $ */
     1/* $Id: disk.cpp,v 1.11 2000-05-20 13:30:27 sandervl Exp $ */
    22
    33/*
     
    141141              PULARGE_INTEGER, lpTotalNumberOfFreeBytes )
    142142{
    143   dprintf(("not yet implemented"));
    144 
    145   return TRUE;
     143    BOOL rc;
     144    DWORD dwSectorsPerCluster;  // address of sectors per cluster ter
     145    DWORD dwBytesPerSector;     // address of bytes per sector
     146    DWORD dwNumberOfFreeClusters;       // address of number of free clusters
     147    DWORD dwTotalNumberOfClusters;      // address of total number of clusters
     148
     149    rc = O32_GetDiskFreeSpace(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector,
     150                              &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
     151    if(rc)
     152    {
     153        //TODO: Fill in high part (overflow possible)!!!!!!
     154        if(lpFreeBytesAvailableToCaller!=NULL) {
     155                lpFreeBytesAvailableToCaller->LowPart  = dwNumberOfFreeClusters*dwSectorsPerCluster*dwBytesPerSector;
     156                lpFreeBytesAvailableToCaller->HighPart = 0;
     157        }
     158        if(lpTotalNumberOfBytes!=NULL) {
     159                lpTotalNumberOfBytes->LowPart  = dwTotalNumberOfClusters*dwSectorsPerCluster*dwBytesPerSector;
     160                lpTotalNumberOfBytes->HighPart = 0;
     161        }
     162        if(lpTotalNumberOfFreeBytes!=NULL) {
     163                lpTotalNumberOfFreeBytes->LowPart  = dwNumberOfFreeClusters*dwSectorsPerCluster*dwBytesPerSector;
     164                lpTotalNumberOfFreeBytes->HighPart = 0;
     165        }
     166    }
     167    return rc;
    146168}
    147169
     
    153175              PULARGE_INTEGER, lpTotalNumberOfFreeBytes )
    154176{
    155   dprintf(("not yet implemented"));
    156 
    157   return TRUE;
     177 BOOL  rc;
     178 char *astring;
     179
     180    dprintf(("KERNEL32:  OS2GetDiskFreeSpaceExW\n"));
     181    astring = UnicodeToAsciiString((LPWSTR)lpDirectoryName);
     182    rc = GetDiskFreeSpaceExA(astring, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes);
     183    FreeAsciiString(astring);
     184    return(rc);
    158185}
    159186
Note: See TracChangeset for help on using the changeset viewer.