This function obtains information about the amount of space available on a disk volume in an installable file system. The application does not call this function directly. Instead, use the corresponding standard Win32 function GetDiskFreeSpaceEx. The file system driver (FSD) Manager determines the file system type and calls the MyFSD_GetDiskFreeSpaceW implementation of the function.
At a Glance
Header file: | Fsgmgr.h |
Windows CE versions: | 2.10 and later |
Syntax
BOOL MyFSD_GetDiskFreeSpaceW( PVOLUME pVolume,
PCWSTR pwsPathName, PDWORD pSectorsPerCluster,
PDWORD pBytesPerSector, PDWORD pFreeClusters PDWORD pClusters );
Parameters
pVolume
[in] Pointer to the value that the FSD defines in its DLL and passes to the FSDMGR_RegisterVolume function when registering the volume. The definition of pVolume can point to private structures.
pwsPathName
[in] Pointer to a null-terminated string that specifies a directory in the file system to return information about.
If pwsPathName is NULL, the function obtains information about the disk that contains the current directory.
pSectorsPerCluster
[out] Pointer to a variable that receives the number of sectors per cluster.
pBytesPerSector
[out] Pointer to a variable that receives the number of bytes per sector.
pFreeClusters
[out] Pointer to a variable that receives the total number of free clusters on the disk that are available to the user associated with the calling thread.
pClusters
[out] Pointer to a variable that receives the total number of clusters on the disk that are available to the user associated with the calling thread.
Return Values
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
Remarks
An FSD exports this function if it wants to support the GetDiskFreeSpace function. All FSD functions can be called reentryly, therefore, FSD developers must take this into account when developing an FSD.
The Fsdmgr component is a dynamic-link library (DLL) that manages all operating system interaction with installable files systems. Each installable file system requires an FSD, which is a DLL that exports an API needed to support an installable file system. The name of the DLL for the FSD and the names of the functions it exports start with the name of the associated installable file system. For example, if the name of file system is MyFSD, then its DLL is MyFSD.dll and its exported functions are prefaced with MyFSD_*.
Fsdmgr provides service functions to FSDs. The FSDMGR_RegisterVolume, FSDMGR_CreateFileHandle, and FSDMGR_CreateSearchHandle functions record a DWORD of volume-specific data the FSD needs to keep associated with volume. This volume-specific data is passed as the first parameter of these three functions.
Applications that access an installable file system use standard Win32 functions. For example, when an application wants to create a folder on a device that contains an installable file system, it calls CreateDirectory. Fsdmgr recognizes that the path is to a device containing an installable file system and calls the appropriate function, which in the case of the MyFSD file system is MyFSD_CreateDirectoryW. That is, the application calls CreateDirectory, causing Fsdmgr to call MyFSD_CreateDirectoryW.
See Also