Virtual DVD/CD-ROM

I’ve been asked if I could make a virtual DVD/CD-ROM drive device work on
Win2000 and/or NT 4. Basically, it would be a driver that looked like a
DVD/CD-ROM drive to the OS, but would get it’s data from a service
application (probably via an inverted IOCTL call interface or perhaps
shared memory+events) instead of sending the requests to some real device.

I seem to remember a discussion here that pointed out some potential issues
of using a Win32 app (which a service would be) as a “lower level” on some
kinds of drivers. The virtual DVD would be read-only and not have any
paging files, although it would expect file system drivers like CDFS and
UDF to layer on top.

I think the issue was that under some conditions, the Win32 subsystem would
make calls to the OS for file/disk services, and could not be reentered
until the original request was satisfied. Of course maybe this was for some
long gone version of NT. Alternatives would be to make the service a native
app or even to move the data generation logic into the driver. Keeping it a
user mode service is preferred though, as the organization doesn’t have
resources to do a really complex driver project.

Any horror stories or success stories? Or even better, does anybody sell
such a driver product that could be hooked up to the data producing service
app?

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I don’t think there are any issues unless you are providing a paging
file, and your device certainly is not. There are performance issues,
but heck dvd and cd-rom are slow to begin with, so that shouldn’t be an
issue. If your device is at the scsi-class level, then there certainly
are not any insurmountable reentrancy or deadlock problems I can see
with your approach. If on the other hand you were implementing a virtual
scsi miniport, then you might have problems working around the imposed
constraints (as in IRQL >= DISPATCH_LEVEL/spinlock held for almost all
miniport callbacks.)

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jan Bottorff
Sent: Thursday, August 23, 2001 5:04 PM
To: NT Developers Interest List
Subject: [ntdev] Virtual DVD/CD-ROM

I’ve been asked if I could make a virtual DVD/CD-ROM drive
device work on
Win2000 and/or NT 4. Basically, it would be a driver that
looked like a
DVD/CD-ROM drive to the OS, but would get it’s data from a service
application (probably via an inverted IOCTL call interface or perhaps
shared memory+events) instead of sending the requests to some
real device.

I seem to remember a discussion here that pointed out some
potential issues
of using a Win32 app (which a service would be) as a “lower
level” on some
kinds of drivers. The virtual DVD would be read-only and not have any
paging files, although it would expect file system drivers
like CDFS and
UDF to layer on top.

I think the issue was that under some conditions, the Win32
subsystem would
make calls to the OS for file/disk services, and could not be
reentered
until the original request was satisfied. Of course maybe
this was for some
long gone version of NT. Alternatives would be to make the
service a native
app or even to move the data generation logic into the
driver. Keeping it a
user mode service is preferred though, as the organization
doesn’t have
resources to do a really complex driver project.

Any horror stories or success stories? Or even better, does
anybody sell
such a driver product that could be hooked up to the data
producing service
app?

  • Jan

You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>Any horror stories or success stories?
I’ve completed such a project recently. www.cdrom-emulator.com

Regards,
Max

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Jan Bottorff
Sent: Friday, August 24, 2001 1:04 AM
To: NT Developers Interest List
Subject: [ntdev] Virtual DVD/CD-ROM

I’ve been asked if I could make a virtual DVD/CD-ROM drive device work on
Win2000 and/or NT 4. Basically, it would be a driver that looked like a
DVD/CD-ROM drive to the OS, but would get it’s data from a service
application (probably via an inverted IOCTL call interface or perhaps
shared memory+events) instead of sending the requests to some real device.

I seem to remember a discussion here that pointed out some potential issues
of using a Win32 app (which a service would be) as a “lower level” on some
kinds of drivers. The virtual DVD would be read-only and not have any
paging files, although it would expect file system drivers like CDFS and
UDF to layer on top.

I think the issue was that under some conditions, the Win32 subsystem would
make calls to the OS for file/disk services, and could not be reentered
until the original request was satisfied. Of course maybe this was for some
long gone version of NT. Alternatives would be to make the service a native
app or even to move the data generation logic into the driver. Keeping it a
user mode service is preferred though, as the organization doesn’t have
resources to do a really complex driver project.

Any horror stories or success stories? Or even better, does anybody sell
such a driver product that could be hooked up to the data producing service
app?

  • Jan

You are currently subscribed to ntdev as: xxxxx@acronis.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi,

Windows NT/2K is not Windows 9X/ME. There should not be any problems
passing work to UserMode application. Virtual CD/DVD projects are here for
years. Check www.deamon-tool.com for a good sample how what you want can be
designed in the SCSI Miniport way. I’m personally wrote virtual hard disk
emulation at very different levels (SCSI Port, SCSI Miniport, SCSI Class)
and some projects really passed job to UserMode (using sockets not IOCTLs
and events). Check URL below and you’ll see.

Regards,
Anton Kolomyeytsev

CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
“KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, iSCSI port
www.CoolDev.Com xxxxx@CoolDev.Com xxxxx@CoolDev.Com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi,

Windows NT/2K is not Windows 9X/ME. There should not be any problems
passing work to UserMode application. Virtual CD/DVD projects are here for
years. Check www.deamon-tools.com for a good sample how what you want can
be designed in the SCSI Miniport way. I’m personally wrote virtual hard
disk emulation at very different levels (SCSI Port, SCSI Miniport, SCSI
Class) and some projects really passed job to UserMode (using sockets not
IOCTLs and events). Check URL below and you’ll see.

Regards,
Anton Kolomyeytsev

CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
“KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, iSCSI port
www.CoolDev.Com xxxxx@CoolDev.Com xxxxx@CoolDev.Com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com