1 #define IOCTL_VCDROM_BASE 0x2
2 #define IOCTL_VCDROM_CREATE_DRIVE CTL_CODE(IOCTL_VCDROM_BASE, 0xCC0, METHOD_BUFFERED, FILE_ANY_ACCESS)
3 #define IOCTL_VCDROM_DELETE_DRIVE CTL_CODE(IOCTL_VCDROM_BASE, 0xCC1, METHOD_BUFFERED, FILE_ANY_ACCESS)
4 #define IOCTL_VCDROM_MOUNT_IMAGE  CTL_CODE(IOCTL_VCDROM_BASE, 0xCC2, METHOD_BUFFERED, FILE_ANY_ACCESS)
5 #define IOCTL_VCDROM_ENUMERATE_DRIVES CTL_CODE(IOCTL_VCDROM_BASE, 0xCC3, METHOD_BUFFERED, FILE_ANY_ACCESS)
6 #define IOCTL_VCDROM_GET_IMAGE_PATH CTL_CODE(IOCTL_VCDROM_BASE, 0xCC4, METHOD_BUFFERED, FILE_ANY_ACCESS)
7 
8 typedef struct _MOUNT_PARAMETERS
9 {
10     WCHAR Path[255];
11     USHORT Length;
12     ULONG Flags;
13 } MOUNT_PARAMETERS, *PMOUNT_PARAMETERS;
14 
15 #define MOUNT_FLAG_SUPP_UDF    0x1
16 #define MOUNT_FLAG_SUPP_JOLIET 0x2
17 
18 typedef struct _DRIVES_LIST
19 {
20     USHORT Count;
21     WCHAR Drives[26];
22 } DRIVES_LIST, *PDRIVES_LIST;
23 
24 typedef struct _IMAGE_PATH
25 {
26     WCHAR Path[255];
27     USHORT Length;
28     USHORT Mounted;
29 } IMAGE_PATH, *PIMAGE_PATH;
30