Author: ros-arm-bringup Date: Sun Jul 20 01:32:23 2008 New Revision: 34604
URL: http://svn.reactos.org/svn/reactos?rev=34604&view=rev Log: - Fix the parameters we were sending to IoCreateDevice for our drive FDO. - Now the kernel attempts to mount us through CDFS! - Start stubbing the work we'll need to do in RamdiskDeviceControl -- this is where the emulation magic will happen.
Modified: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c
Modified: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/ramdi... ============================================================================== --- trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c [iso-8859-1] (original) +++ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c [iso-8859-1] Sun Jul 20 01:32:23 2008 @@ -11,6 +11,7 @@ #include <initguid.h> #include <ntddk.h> #include <ntdddisk.h> +#include <ntddcdrm.h> #include <scsi.h> #include <ntddscsi.h> #include <mountdev.h> @@ -371,8 +372,8 @@ Status = IoCreateDevice(DeviceExtension->DeviceObject->DriverObject, sizeof(RAMDISK_DRIVE_EXTENSION), &DeviceName, - FILE_DEVICE_DISK_FILE_SYSTEM, // FIXME: DISK - FILE_READ_ONLY_DEVICE, // FIXME: Not always + FILE_DEVICE_CD_ROM, + 0, 0, &DeviceObject); if (!NT_SUCCESS(Status)) goto FailCreate; @@ -906,9 +907,44 @@ else { // - // Drive code not yet done - // - ASSERT(FALSE); + // Check what the request is + // + switch (IoStackLocation->Parameters.DeviceIoControl.IoControlCode) + { + case IOCTL_CDROM_CHECK_VERIFY: + + UNIMPLEMENTED; + while (TRUE); + break; + + case IOCTL_CDROM_GET_DRIVE_GEOMETRY: + + UNIMPLEMENTED; + while (TRUE); + break; + + case IOCTL_CDROM_READ_TOC: + + UNIMPLEMENTED; + while (TRUE); + break; + + default: + + // + // Drive code not yet done + // + DPRINT1("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode); + UNIMPLEMENTED; + while (TRUE); + break; + } + + // + // Cleanup/complete + // + UNIMPLEMENTED; + while (TRUE); }
//