Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[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.
- Loading branch information
1 parent
63d4622
commit 6906e18
Showing
6 changed files
with
1,293 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
add_subdirectory(green) | ||
add_subdirectory(vcdrom) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
|
||
add_library(vcdrom SHARED vcdrom.c vcdrom.rc) | ||
set_module_type(vcdrom kernelmodedriver) | ||
target_link_libraries(vcdrom ${PSEH_LIB}) | ||
add_importlibs(vcdrom ntoskrnl hal) | ||
add_cd_file(TARGET vcdrom DESTINATION reactos/system32/drivers FOR all) | ||
add_registry_inf(vcdrom_reg.inf) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#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; |
Oops, something went wrong.