#ifndef _NTPSAPI_H
#if (PHNT_MODE != PHNT_MODE_KERNEL)
typedef struct _PROCESS_DEVICEMAP_INFORMATION
{
union
{
struct
{
HANDLE DirectoryHandle; // needs DIRECTORY_TRAVERSE access
} Set;
struct
{
ULONG DriveMap; // bit mask
UCHAR DriveType[32]; // DRIVE_* WinBase.h
} Query;
};
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
View code on GitHub
This structure defines information about the process's DOS devices map.
NtQueryInformationProcess
with ProcessDeviceMap
(23)NtSetInformationProcess
with ProcessDeviceMap
(23)A handle to a directory object to set as the new device map for the process. The handle must grant DIRECTORY_TRAVERSE
access.
A bit mask defining which drive letters are currently in use in the process's device map. Bit 0 corresponds to A:
, bit 1 to B:
, and so on.
An array where each element defines the type of the drive associated with the specified letter. The value is meaningful only when the corresponding bit set in the DriveMap
field.
The possible values are defined in SDK in WinBase.h
:
DRIVE_UNKNOWN
(0) - the type of the drive is unknown.DRIVE_NO_ROOT_DIR
(1) - the letter points to a directory on another drive.DRIVE_REMOVABLE
(2) - the drive is a removable media.DRIVE_FIXED
(3) - the drive is a fixed disk.DRIVE_REMOTE
(4) - the drive is a remote device.DRIVE_CDROM
(5) - the drive is a CD-ROM.DRIVE_RAMDISK
(6) - the drive is a RAM disk.