[RAMDISK]

- Whitespace fixes,
- Add braces for long "case blah: ..." code blocks,
- Add more informational messages when a feature is unimplemented (some control codes and cases happening when using ramdisk with bootcd).

svn path=/trunk/; revision=66013
This commit is contained in:
Hermès Bélusca-Maïto 2015-01-09 14:09:34 +00:00
parent 057211e26a
commit f3dfb65738

View file

@ -467,7 +467,7 @@ RamdiskCreateDiskDevice(IN PRAMDISK_BUS_EXTENSION DeviceExtension,
// //
// Read the view count instead // Read the view count instead
// //
//ViewCount = Input->ViewCount; // ViewCount = Input->ViewCount;
// //
// Sanitize disk options // Sanitize disk options
@ -1047,7 +1047,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// Device control // Device control
// //
case IRP_MJ_DEVICE_CONTROL: case IRP_MJ_DEVICE_CONTROL:
{
// //
// Let's take a look at the IOCTL // Let's take a look at the IOCTL
// //
@ -1057,30 +1057,31 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// Ramdisk create request // Ramdisk create request
// //
case FSCTL_CREATE_RAM_DISK: case FSCTL_CREATE_RAM_DISK:
{
// //
// This time we'll do it for real // This time we'll do it for real
// //
Status = RamdiskCreateRamdisk(DeviceObject, Irp, FALSE); Status = RamdiskCreateRamdisk(DeviceObject, Irp, FALSE);
break; break;
}
case IOCTL_DISK_SET_PARTITION_INFO: case IOCTL_DISK_SET_PARTITION_INFO:
{
Status = RamdiskSetPartitionInfo(Irp, (PRAMDISK_DRIVE_EXTENSION)DeviceExtension); Status = RamdiskSetPartitionInfo(Irp, (PRAMDISK_DRIVE_EXTENSION)DeviceExtension);
break; break;
}
case IOCTL_DISK_GET_DRIVE_LAYOUT: case IOCTL_DISK_GET_DRIVE_LAYOUT:
UNIMPLEMENTED_DBGBREAK("Get drive layout request\n"); UNIMPLEMENTED_DBGBREAK("Get drive layout request\n");
break; break;
case IOCTL_DISK_GET_PARTITION_INFO: case IOCTL_DISK_GET_PARTITION_INFO:
{
Status = RamdiskGetPartitionInfo(Irp, (PRAMDISK_DRIVE_EXTENSION)DeviceExtension); Status = RamdiskGetPartitionInfo(Irp, (PRAMDISK_DRIVE_EXTENSION)DeviceExtension);
break; break;
}
default: default:
UNIMPLEMENTED_DBGBREAK("Invalid request\n"); UNIMPLEMENTED_DBGBREAK("Invalid request\n");
break; break;
} }
@ -1089,13 +1090,13 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// We're here // We're here
// //
break; break;
}
// //
// Read or write request // Read or write request
// //
case IRP_MJ_READ: case IRP_MJ_READ:
case IRP_MJ_WRITE: case IRP_MJ_WRITE:
UNIMPLEMENTED_DBGBREAK("Read/Write request\n"); UNIMPLEMENTED_DBGBREAK("Read/Write request\n");
break; break;
@ -1103,7 +1104,6 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// Internal request (SCSI?) // Internal request (SCSI?)
// //
case IRP_MJ_INTERNAL_DEVICE_CONTROL: case IRP_MJ_INTERNAL_DEVICE_CONTROL:
UNIMPLEMENTED_DBGBREAK("SCSI request\n"); UNIMPLEMENTED_DBGBREAK("SCSI request\n");
break; break;
@ -1111,7 +1111,6 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// Flush request // Flush request
// //
case IRP_MJ_FLUSH_BUFFERS: case IRP_MJ_FLUSH_BUFFERS:
UNIMPLEMENTED_DBGBREAK("Flush request\n"); UNIMPLEMENTED_DBGBREAK("Flush request\n");
break; break;
@ -1119,7 +1118,6 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
// Anything else // Anything else
// //
default: default:
UNIMPLEMENTED_DBGBREAK("Invalid request: %lx\n", IoStackLocation->MajorFunction); UNIMPLEMENTED_DBGBREAK("Invalid request: %lx\n", IoStackLocation->MajorFunction);
break; break;
} }
@ -1329,8 +1327,8 @@ RamdiskReadWrite(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp) IN PIRP Irp)
{ {
PRAMDISK_DRIVE_EXTENSION DeviceExtension; PRAMDISK_DRIVE_EXTENSION DeviceExtension;
//ULONG Length; // ULONG Length;
//LARGE_INTEGER ByteOffset; // LARGE_INTEGER ByteOffset;
PIO_STACK_LOCATION IoStackLocation; PIO_STACK_LOCATION IoStackLocation;
NTSTATUS Status, ReturnStatus; NTSTATUS Status, ReturnStatus;
@ -1351,8 +1349,8 @@ RamdiskReadWrite(IN PDEVICE_OBJECT DeviceObject,
// Capture parameters // Capture parameters
// //
IoStackLocation = IoGetCurrentIrpStackLocation(Irp); IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
//Length = IoStackLocation->Parameters.Read.Length; // Length = IoStackLocation->Parameters.Read.Length;
//ByteOffset = IoStackLocation->Parameters.Read.ByteOffset; // ByteOffset = IoStackLocation->Parameters.Read.ByteOffset;
// //
// FIXME: Validate offset // FIXME: Validate offset
@ -1461,20 +1459,22 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
// Request to create a ramdisk // Request to create a ramdisk
// //
case FSCTL_CREATE_RAM_DISK: case FSCTL_CREATE_RAM_DISK:
{
// //
// Do it // Do it
// //
Status = RamdiskCreateRamdisk(DeviceObject, Irp, TRUE); Status = RamdiskCreateRamdisk(DeviceObject, Irp, TRUE);
if (!NT_SUCCESS(Status)) goto CompleteRequest; if (!NT_SUCCESS(Status)) goto CompleteRequest;
break; break;
}
default: default:
{
// //
// We don't handle anything else yet // We don't handle anything else yet
// //
UNIMPLEMENTED_DBGBREAK(); UNIMPLEMENTED_DBGBREAK("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode);
}
} }
} }
else else
@ -1488,18 +1488,19 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
case IOCTL_STORAGE_CHECK_VERIFY: case IOCTL_STORAGE_CHECK_VERIFY:
case IOCTL_STORAGE_CHECK_VERIFY2: case IOCTL_STORAGE_CHECK_VERIFY2:
case IOCTL_CDROM_CHECK_VERIFY: case IOCTL_CDROM_CHECK_VERIFY:
{
// //
// Just pretend it's OK, don't do more // Just pretend it's OK, don't do more
// //
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
break; break;
}
case IOCTL_STORAGE_GET_MEDIA_TYPES: case IOCTL_STORAGE_GET_MEDIA_TYPES:
case IOCTL_DISK_GET_MEDIA_TYPES: case IOCTL_DISK_GET_MEDIA_TYPES:
case IOCTL_DISK_GET_DRIVE_GEOMETRY: case IOCTL_DISK_GET_DRIVE_GEOMETRY:
case IOCTL_CDROM_GET_DRIVE_GEOMETRY: case IOCTL_CDROM_GET_DRIVE_GEOMETRY:
{
// //
// Validate the length // Validate the length
// //
@ -1530,9 +1531,10 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
Information = sizeof(DISK_GEOMETRY); Information = sizeof(DISK_GEOMETRY);
break; break;
}
case IOCTL_CDROM_READ_TOC: case IOCTL_CDROM_READ_TOC:
{
// //
// Validate the length // Validate the length
// //
@ -1569,14 +1571,16 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
Information = RAMDISK_TOC_SIZE; Information = RAMDISK_TOC_SIZE;
break; break;
}
case IOCTL_DISK_SET_PARTITION_INFO: case IOCTL_DISK_SET_PARTITION_INFO:
{
Status = RamdiskSetPartitionInfo(Irp, DriveExtension); Status = RamdiskSetPartitionInfo(Irp, DriveExtension);
break; break;
}
case IOCTL_DISK_GET_PARTITION_INFO: case IOCTL_DISK_GET_PARTITION_INFO:
{
// //
// Validate the length // Validate the length
// //
@ -1613,70 +1617,33 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
// //
Information = Irp->IoStatus.Information; Information = Irp->IoStatus.Information;
break; break;
}
case IOCTL_DISK_GET_DRIVE_LAYOUT: case IOCTL_DISK_GET_DRIVE_LAYOUT:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_DISK_GET_LENGTH_INFO: case IOCTL_DISK_GET_LENGTH_INFO:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_DISK_IS_WRITABLE: case IOCTL_DISK_IS_WRITABLE:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_SCSI_MINIPORT: case IOCTL_SCSI_MINIPORT:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_STORAGE_QUERY_PROPERTY: case IOCTL_STORAGE_QUERY_PROPERTY:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID: case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_MOUNTDEV_QUERY_STABLE_GUID: case IOCTL_MOUNTDEV_QUERY_STABLE_GUID:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS: case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_VOLUME_SET_GPT_ATTRIBUTES: case IOCTL_VOLUME_SET_GPT_ATTRIBUTES:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_VOLUME_GET_GPT_ATTRIBUTES: case IOCTL_VOLUME_GET_GPT_ATTRIBUTES:
UNIMPLEMENTED_DBGBREAK();
break;
case IOCTL_VOLUME_OFFLINE: case IOCTL_VOLUME_OFFLINE:
{
UNIMPLEMENTED_DBGBREAK(); UNIMPLEMENTED_DBGBREAK("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode);
break; break;
}
default: default:
{
// //
// Drive code not emulated // Drive code not emulated
// //
DPRINT1("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode); DPRINT1("IOCTL: %lx\n", IoStackLocation->Parameters.DeviceIoControl.IoControlCode);
break; break;
} }
}
// //
// If requests drop down here, we just return them complete them // If requests drop down here, we just return them complete them
@ -2082,7 +2049,7 @@ RamdiskQueryId(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
switch (IoStackLocation->Parameters.QueryId.IdType) switch (IoStackLocation->Parameters.QueryId.IdType)
{ {
case BusQueryDeviceID: case BusQueryDeviceID:
{
// //
// Allocate a buffer long enough to receive Ramdisk\RamDisk in any case // Allocate a buffer long enough to receive Ramdisk\RamDisk in any case
// In case we don't have RAMDISK_REGISTRY_DISK, we then need two more // In case we don't have RAMDISK_REGISTRY_DISK, we then need two more
@ -2107,9 +2074,10 @@ RamdiskQueryId(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
} }
break; break;
}
case BusQueryHardwareIDs: case BusQueryHardwareIDs:
{
// //
// Allocate a buffer long enough to receive Ramdisk\RamDisk in any case // Allocate a buffer long enough to receive Ramdisk\RamDisk in any case
// In case we don't have RAMDISK_REGISTRY_DISK, we then need two more // In case we don't have RAMDISK_REGISTRY_DISK, we then need two more
@ -2138,9 +2106,10 @@ RamdiskQueryId(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
OutputString[(StringLength / sizeof(WCHAR)) - 1] = UNICODE_NULL; OutputString[(StringLength / sizeof(WCHAR)) - 1] = UNICODE_NULL;
break; break;
}
case BusQueryCompatibleIDs: case BusQueryCompatibleIDs:
{
if (DriveExtension->DiskType != RAMDISK_REGISTRY_DISK) if (DriveExtension->DiskType != RAMDISK_REGISTRY_DISK)
{ {
Status = STATUS_INVALID_DEVICE_REQUEST; Status = STATUS_INVALID_DEVICE_REQUEST;
@ -2159,9 +2128,10 @@ RamdiskQueryId(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
OutputString[(StringLength / sizeof(WCHAR)) - 1] = UNICODE_NULL; OutputString[(StringLength / sizeof(WCHAR)) - 1] = UNICODE_NULL;
break; break;
}
case BusQueryInstanceID: case BusQueryInstanceID:
{
OutputString = ExAllocatePoolWithTag(PagedPool, DriveExtension->GuidString.MaximumLength, 'dmaR'); OutputString = ExAllocatePoolWithTag(PagedPool, DriveExtension->GuidString.MaximumLength, 'dmaR');
if (OutputString == NULL) if (OutputString == NULL)
{ {
@ -2172,15 +2142,16 @@ RamdiskQueryId(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
wcsncpy(OutputString, DriveExtension->GuidString.Buffer, DriveExtension->GuidString.MaximumLength / sizeof(WCHAR)); wcsncpy(OutputString, DriveExtension->GuidString.Buffer, DriveExtension->GuidString.MaximumLength / sizeof(WCHAR));
break; break;
}
case BusQueryDeviceSerialNumber: case BusQueryDeviceSerialNumber:
{
// //
// Nothing to do // Nothing to do
// //
break; break;
} }
}
Irp->IoStatus.Status = Status; Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = (ULONG_PTR)OutputString; Irp->IoStatus.Information = (ULONG_PTR)OutputString;
@ -2248,7 +2219,7 @@ RamdiskQueryDeviceText(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
switch (DeviceTextType) switch (DeviceTextType)
{ {
case DeviceTextDescription: case DeviceTextDescription:
{
OutputString = ExAllocatePoolWithTag(PagedPool, sizeof(L"RamDisk"), 'dmaR'); OutputString = ExAllocatePoolWithTag(PagedPool, sizeof(L"RamDisk"), 'dmaR');
if (OutputString == NULL) if (OutputString == NULL)
{ {
@ -2259,9 +2230,10 @@ RamdiskQueryDeviceText(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
wcsncpy(OutputString, L"RamDisk", sizeof(L"RamDisk") / sizeof(WCHAR)); wcsncpy(OutputString, L"RamDisk", sizeof(L"RamDisk") / sizeof(WCHAR));
break; break;
}
case DeviceTextLocationInformation: case DeviceTextLocationInformation:
{
OutputString = ExAllocatePoolWithTag(PagedPool, sizeof(L"RamDisk\\0"), 'dmaR'); OutputString = ExAllocatePoolWithTag(PagedPool, sizeof(L"RamDisk\\0"), 'dmaR');
if (OutputString == NULL) if (OutputString == NULL)
{ {
@ -2273,6 +2245,7 @@ RamdiskQueryDeviceText(IN PRAMDISK_DRIVE_EXTENSION DriveExtension,
break; break;
} }
}
Irp->IoStatus.Status = Status; Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = (ULONG_PTR)OutputString; Irp->IoStatus.Information = (ULONG_PTR)OutputString;
@ -2386,7 +2359,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
switch (Minor) switch (Minor)
{ {
case IRP_MN_START_DEVICE: case IRP_MN_START_DEVICE:
{
if (DeviceExtension->Type == RamdiskDrive) if (DeviceExtension->Type == RamdiskDrive)
{ {
ULONG ResultLength; ULONG ResultLength;
@ -2493,34 +2466,20 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
Irp->IoStatus.Status = Status; Irp->IoStatus.Status = Status;
break; break;
}
case IRP_MN_QUERY_STOP_DEVICE: case IRP_MN_QUERY_STOP_DEVICE:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break;
case IRP_MN_CANCEL_STOP_DEVICE: case IRP_MN_CANCEL_STOP_DEVICE:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break;
case IRP_MN_STOP_DEVICE: case IRP_MN_STOP_DEVICE:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break;
case IRP_MN_QUERY_REMOVE_DEVICE: case IRP_MN_QUERY_REMOVE_DEVICE:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break;
case IRP_MN_CANCEL_REMOVE_DEVICE: case IRP_MN_CANCEL_REMOVE_DEVICE:
{
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break; break;
}
case IRP_MN_REMOVE_DEVICE: case IRP_MN_REMOVE_DEVICE:
{
// //
// Remove the proper device // Remove the proper device
// //
@ -2547,14 +2506,14 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status; return Status;
} }
}
case IRP_MN_SURPRISE_REMOVAL: case IRP_MN_SURPRISE_REMOVAL:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break; break;
case IRP_MN_QUERY_ID: case IRP_MN_QUERY_ID:
{
// //
// Are we a drive? // Are we a drive?
// //
@ -2563,9 +2522,10 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
Status = RamdiskQueryId((PRAMDISK_DRIVE_EXTENSION)DeviceExtension, Irp); Status = RamdiskQueryId((PRAMDISK_DRIVE_EXTENSION)DeviceExtension, Irp);
} }
break; break;
}
case IRP_MN_QUERY_BUS_INFORMATION: case IRP_MN_QUERY_BUS_INFORMATION:
{
// //
// Are we a drive? // Are we a drive?
// //
@ -2574,14 +2534,14 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
Status = RamdiskQueryBusInformation(DeviceObject, Irp); Status = RamdiskQueryBusInformation(DeviceObject, Irp);
} }
break; break;
}
case IRP_MN_EJECT: case IRP_MN_EJECT:
UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor);
break; break;
case IRP_MN_QUERY_DEVICE_TEXT: case IRP_MN_QUERY_DEVICE_TEXT:
{
// //
// Are we a drive? // Are we a drive?
// //
@ -2590,9 +2550,10 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
Status = RamdiskQueryDeviceText((PRAMDISK_DRIVE_EXTENSION)DeviceExtension, Irp); Status = RamdiskQueryDeviceText((PRAMDISK_DRIVE_EXTENSION)DeviceExtension, Irp);
} }
break; break;
}
case IRP_MN_QUERY_DEVICE_RELATIONS: case IRP_MN_QUERY_DEVICE_RELATIONS:
{
// //
// Call our main routine // Call our main routine
// //
@ -2602,9 +2563,10 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
DeviceObject, DeviceObject,
Irp); Irp);
goto ReleaseAndReturn; goto ReleaseAndReturn;
}
case IRP_MN_QUERY_CAPABILITIES: case IRP_MN_QUERY_CAPABILITIES:
{
// //
// Are we a drive? // Are we a drive?
// //
@ -2613,18 +2575,19 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
Status = RamdiskQueryCapabilities(DeviceObject, Irp); Status = RamdiskQueryCapabilities(DeviceObject, Irp);
} }
break; break;
}
case IRP_MN_QUERY_RESOURCES: case IRP_MN_QUERY_RESOURCES:
case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
{
// //
// Complete immediately without touching it // Complete immediately without touching it
// //
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
goto ReleaseAndReturn; goto ReleaseAndReturn;
}
default: default:
DPRINT1("Illegal IRP: %lx\n", Minor); DPRINT1("Illegal IRP: %lx\n", Minor);
break; break;
} }
@ -2702,6 +2665,7 @@ RamdiskPower(IN PDEVICE_OBJECT DeviceObject,
switch (IoStackLocation->MinorFunction) switch (IoStackLocation->MinorFunction)
{ {
case IRP_MN_SET_POWER: case IRP_MN_SET_POWER:
{
// //
// If setting device power state // If setting device power state
// it's all fine and return success // it's all fine and return success
@ -2718,8 +2682,10 @@ RamdiskPower(IN PDEVICE_OBJECT DeviceObject,
PoStartNextPowerIrp(Irp); PoStartNextPowerIrp(Irp);
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
break; break;
}
case IRP_MN_QUERY_POWER: case IRP_MN_QUERY_POWER:
{
// //
// We can obviously accept all states // We can obviously accept all states
// So just return success // So just return success
@ -2729,8 +2695,10 @@ RamdiskPower(IN PDEVICE_OBJECT DeviceObject,
PoStartNextPowerIrp(Irp); PoStartNextPowerIrp(Irp);
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
break; break;
}
default: default:
{
// //
// Just complete and save status for return // Just complete and save status for return
// //
@ -2739,6 +2707,7 @@ RamdiskPower(IN PDEVICE_OBJECT DeviceObject,
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
break; break;
} }
}
return Status; return Status;
} }
@ -2982,7 +2951,9 @@ RamdiskAddDevice(IN PDRIVER_OBJECT DriverObject,
// //
// Are we being booted from setup? Not yet supported // Are we being booted from setup? Not yet supported
// //
//ASSERT(!KeLoaderBlock->SetupLdrBlock); if (KeLoaderBlock->SetupLdrBlock)
DPRINT1("FIXME: RamdiskAddDevice unsupported when being started from SETUPLDR!\n");
// ASSERT(!KeLoaderBlock->SetupLdrBlock);
} }
// //
@ -3098,7 +3069,9 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
// //
// Installing from Ramdisk isn't supported yet // Installing from Ramdisk isn't supported yet
// //
//ASSERT(!KeLoaderBlock->SetupLdrBlock); if (KeLoaderBlock->SetupLdrBlock)
DPRINT1("FIXME: Installing from RamDisk is UNSUPPORTED!\n");
// ASSERT(!KeLoaderBlock->SetupLdrBlock);
// //
// Are we reporting the device // Are we reporting the device