reactos/modules/rosapps/drivers/vcdrom/vcdioctl.h
Pierre Schweitzer 6906e184bb
[VCDROM] Implement the virtual CD-ROM class driver.
It was provided by MS as a separate package to download for Windows (up to 7).
That class driver allows creating virtual drives on which we can later mount ISOs images.
It's rather basic, but does the job.

To use it, you can use the GUI app from Microsoft (Virtual CD-ROM Control Panel)
or the vcdcli in CLI. We're compatible :-).

Note that it's not loaded at boot, you need to manually start it, to lower memory footprint.
Both applications will handle this for you.
2017-12-03 18:17:45 +01:00

30 lines
974 B
C

#define IOCTL_VCDROM_BASE 0x2
#define IOCTL_VCDROM_CREATE_DRIVE CTL_CODE(IOCTL_VCDROM_BASE, 0xCC0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VCDROM_DELETE_DRIVE CTL_CODE(IOCTL_VCDROM_BASE, 0xCC1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VCDROM_MOUNT_IMAGE CTL_CODE(IOCTL_VCDROM_BASE, 0xCC2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VCDROM_ENUMERATE_DRIVES CTL_CODE(IOCTL_VCDROM_BASE, 0xCC3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VCDROM_GET_IMAGE_PATH CTL_CODE(IOCTL_VCDROM_BASE, 0xCC4, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _MOUNT_PARAMETERS
{
WCHAR Path[255];
USHORT Length;
ULONG Flags;
} MOUNT_PARAMETERS, *PMOUNT_PARAMETERS;
#define MOUNT_FLAG_SUPP_UDF 0x1
#define MOUNT_FLAG_SUPP_JOLIET 0x2
typedef struct _DRIVES_LIST
{
USHORT Count;
WCHAR Drives[26];
} DRIVES_LIST, *PDRIVES_LIST;
typedef struct _IMAGE_PATH
{
WCHAR Path[255];
USHORT Length;
USHORT Mounted;
} IMAGE_PATH, *PIMAGE_PATH;