2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: drivers/filesystems/cdfs/devctrl.c
5 * PURPOSE: CDROM (ISO 9660) filesystem driver
6 * PROGRAMMER: Pierre Schweitzer
10 /* INCLUDES *****************************************************************/
17 /* FUNCTIONS ****************************************************************/
21 PCDFS_IRP_CONTEXT IrpContext
)
26 PFILE_OBJECT FileObject
;
27 PIO_STACK_LOCATION Stack
;
29 DPRINT("CdfsDeviceControl()\n");
33 Irp
= IrpContext
->Irp
;
34 Stack
= IrpContext
->Stack
;
35 FileObject
= Stack
->FileObject
;
36 Irp
->IoStatus
.Information
= 0;
38 /* FIXME: HACK, it means that CD has changed */
41 DPRINT1("FIXME: CdfsDeviceControl called without FileObject!\n");
42 return STATUS_INVALID_DEVICE_REQUEST
;
45 /* Only support such operations on volume */
46 if (!(FileObject
->RelatedFileObject
== NULL
|| FileObject
->RelatedFileObject
->FsContext2
!= NULL
))
48 return STATUS_INVALID_PARAMETER
;
51 if (Stack
->Parameters
.DeviceIoControl
.IoControlCode
== IOCTL_CDROM_DISK_TYPE
)
53 /* We should handle this one, but we don't! */
54 Status
= STATUS_NOT_IMPLEMENTED
;
58 /* Pass it to storage driver */
59 IoSkipCurrentIrpStackLocation(Irp
);
60 Vcb
= (PVCB
)Stack
->DeviceObject
->DeviceExtension
;
62 /* Lower driver will complete - we don't have to */
63 IrpContext
->Flags
&= ~IRPCONTEXT_COMPLETE
;
65 Status
= IoCallDriver(Vcb
->StorageDevice
, Irp
);