GetDriveTypeA function

Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.

To determine whether a drive is a USB-type drive, call SetupDiGetDeviceRegistryProperty and specify the SPDRP_REMOVAL_POLICY property.

Syntax

UINT GetDriveTypeA(
  LPCSTR lpRootPathName
);

Parameters

lpRootPathName

The root directory for the drive.

A trailing backslash is required. If this parameter is NULL, the function uses the root of the current directory.

Return Value

The return value specifies the type of drive, which can be one of the following values.

Return code/value Description
DRIVE_UNKNOWN
0
The drive type cannot be determined.
DRIVE_NO_ROOT_DIR
1
The root path is invalid; for example, there is no volume mounted at the specified path.
DRIVE_REMOVABLE
2
The drive has removable media; for example, a floppy drive, thumb drive, or flash card reader.
DRIVE_FIXED
3
The drive has fixed media; for example, a hard disk drive or flash drive.
DRIVE_REMOTE
4
The drive is a remote (network) drive.
DRIVE_CDROM
5
The drive is a CD-ROM drive.
DRIVE_RAMDISK
6
The drive is a RAM disk.

Remarks

In Windows 8 and Windows Server 2012, this function is supported by the following technologies.

Technology Supported
Server Message Block (SMB) 3.0 protocol No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 with Scale-out File Shares (SO) No
Cluster Shared Volume File System (CsvFS) Yes
Resilient File System (ReFS) Yes
 

SMB does not support volume management functions.

Requirements

   
Windows version Windows XP [desktop apps | UWP apps] Windows Server 2003 [desktop apps | UWP apps]
Target Platform Windows
Header fileapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See Also

GetDiskFreeSpace

Volume Management Functions