mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
- Write out all the IOCTLs the RAM Disk emulation core needs to handle.
- Looks like the React CDFS driver behaves very differently from the NT CDFS driver. svn path=/trunk/; revision=34608
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <ntddcdrm.h>
|
||||
#include <scsi.h>
|
||||
#include <ntddscsi.h>
|
||||
#include <ntddvol.h>
|
||||
#include <mountdev.h>
|
||||
#include <mountmgr.h>
|
||||
#include <helper.h>
|
||||
@@ -856,7 +857,7 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
||||
NTSTATUS Status;
|
||||
PIO_STACK_LOCATION IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
|
||||
PRAMDISK_BUS_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
ULONG Information = 0;
|
||||
ULONG Information;
|
||||
|
||||
//
|
||||
// Grab the remove lock
|
||||
@@ -873,6 +874,12 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup some defaults
|
||||
//
|
||||
Status = STATUS_INVALID_DEVICE_REQUEST;
|
||||
Information = 0;
|
||||
|
||||
//
|
||||
// Check if this is an bus device or the drive
|
||||
//
|
||||
@@ -911,12 +918,18 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
||||
//
|
||||
switch (IoStackLocation->Parameters.DeviceIoControl.IoControlCode)
|
||||
{
|
||||
case IOCTL_DISK_CHECK_VERIFY:
|
||||
case IOCTL_STORAGE_CHECK_VERIFY:
|
||||
case IOCTL_STORAGE_CHECK_VERIFY2:
|
||||
case IOCTL_CDROM_CHECK_VERIFY:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
|
||||
case IOCTL_STORAGE_GET_MEDIA_TYPES:
|
||||
case IOCTL_DISK_GET_MEDIA_TYPES:
|
||||
case IOCTL_DISK_GET_DRIVE_GEOMETRY:
|
||||
case IOCTL_CDROM_GET_DRIVE_GEOMETRY:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
@@ -929,22 +942,97 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_DISK_SET_PARTITION_INFO:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_DISK_GET_PARTITION_INFO:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_DISK_GET_DRIVE_LAYOUT:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_DISK_GET_LENGTH_INFO:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_DISK_IS_WRITABLE:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_SCSI_MINIPORT:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_STORAGE_QUERY_PROPERTY:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_MOUNTDEV_QUERY_STABLE_GUID:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_VOLUME_SET_GPT_ATTRIBUTES:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_VOLUME_GET_GPT_ATTRIBUTES:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
case IOCTL_VOLUME_OFFLINE:
|
||||
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
//
|
||||
// Drive code not yet done
|
||||
// Drive code not emulated
|
||||
//
|
||||
DPRINT1("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode);
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Cleanup/complete
|
||||
// If requests drop down here, we just return them complete them
|
||||
//
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
goto CompleteRequest;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user