Virtual DVD burner - IOCTLs - Where to get information?

Hallo!

I currently try to figure out which IOCTLs (and how) to handle, to make a
virtual DVD burner.
As far as I know:
I need to mark the virtual device as FILE_DEVICE_DVD.
I assume that I have to handle

  • IOCTL_CDROM_GET_DRIVE_GEOMETRY
  • IOCTL_CDROM_GET_CONFIGURATION (->
    FEATURE_PROFILE_TYPE.ProfileDvdRecordable)

Currently the virtual burner should do *nothing*. It should just be there as
some kind of dummy-device.

Does someone know where to get the essential information (which IOCTLs when
read, write or identify the device) for this type of device?

Markus

You drive to blind end… You simply cannot create virtual SCSI device
sticking
with “class driver” architecture. Search this archive as this topic
discussed here lot of times.

Alternative way for you (according to your question you’re new to NT storage
drivers) would have everything running in user mode. It’s possible with some
of the
toolkits on the market.

Anton

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Markus
Sent: Tuesday, September 12, 2006 2:09 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Virtual DVD burner - IOCTLs - Where to get information?

Hallo!

I currently try to figure out which IOCTLs (and how) to handle, to make a
virtual DVD burner.
As far as I know:
I need to mark the virtual device as FILE_DEVICE_DVD.
I assume that I have to handle

  • IOCTL_CDROM_GET_DRIVE_GEOMETRY
  • IOCTL_CDROM_GET_CONFIGURATION (->
    FEATURE_PROFILE_TYPE.ProfileDvdRecordable)

Currently the virtual burner should do *nothing*. It should just be there as

some kind of dummy-device.

Does someone know where to get the essential information (which IOCTLs when
read, write or identify the device) for this type of device?

Markus


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Well, I thought that this is possible, because of the ramdrive (WDF-Sample).
I thought a similar architecture should have been possible.
(Yes I am pretty new to storage-drivers)

Do you know a good book about storage drivers? (I only have Oney’s book
“Programming the Microsoft Windows Driver Model” 2nd-Ed.)
I think it’s easier to learn from print words.

Markus

“Anton Kolomyeytsev” schrieb im Newsbeitrag
news:xxxxx@ntdev…
> You drive to blind end… You simply cannot create virtual SCSI device
> sticking
> with “class driver” architecture. Search this archive as this topic
> discussed here lot of times.
>
> Alternative way for you (according to your question you’re new to NT
> storage
> drivers) would have everything running in user mode. It’s possible with
> some
> of the
> toolkits on the market.
>
> Anton
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Markus
> Sent: Tuesday, September 12, 2006 2:09 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Virtual DVD burner - IOCTLs - Where to get information?
>
> Hallo!
>
> I currently try to figure out which IOCTLs (and how) to handle, to make a
> virtual DVD burner.
> As far as I know:
> I need to mark the virtual device as FILE_DEVICE_DVD.
> I assume that I have to handle
> - IOCTL_CDROM_GET_DRIVE_GEOMETRY
> - IOCTL_CDROM_GET_CONFIGURATION (->
> FEATURE_PROFILE_TYPE.ProfileDvdRecordable)
>
> Currently the virtual burner should do nothing. It should just be there
> as
>
> some kind of dummy-device.
>
> Does someone know where to get the essential information (which IOCTLs
> when
> read, write or identify the device) for this type of device?
>
> Markus
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>

If you want complete compatibility, you need a driver that results in the full storage stack layering. This means you don’t want a user mode component or even a wdf ramdisk type of solution since they impose numerous limitations. For starters, your device simply won’t be recognized by existing burning tools.

For 10 years or more, a popular approach in the industry has been to write a scsi miniport driver for both storage hardware as well as virtual devices. The advantages are it is a very small amount of code to write and the only thing you really need to do is handle scsi commands that arrive packaged inside SRB’s (no dealing with ioctl’s, power management, etc). Down at this very low and small layer, ioctl’s have already been converted into scsi commands for you. The disadvantages are miniports were never intended for purely virtual devices and are thus not supported probably because there are hard to solve and error prone hurdles that must be cleared for them to work right.

At WinHEC, Microsoft gave a glimpse that there is an effort underway to release an official way for writing drivers for virtual storage devices. The direction is a slightly improved scsi miniport, technically known as a storport miniport. However, the release time frame, what versions of windows will be supported, and what types of virtual devices that will be capable of utilizing it are an unkown.

eof

www.t13.org
download the MMC-5 spec
read it

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Markus”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Tuesday, September 12, 2006 3:08 PM
Subject: [ntdev] Virtual DVD burner - IOCTLs - Where to get information?

> Hallo!
>
> I currently try to figure out which IOCTLs (and how) to handle, to make a
> virtual DVD burner.
> As far as I know:
> I need to mark the virtual device as FILE_DEVICE_DVD.
> I assume that I have to handle
> - IOCTL_CDROM_GET_DRIVE_GEOMETRY
> - IOCTL_CDROM_GET_CONFIGURATION (->
> FEATURE_PROFILE_TYPE.ProfileDvdRecordable)
>
> Currently the virtual burner should do nothing. It should just be there as
> some kind of dummy-device.
>
> Does someone know where to get the essential information (which IOCTLs when
> read, write or identify the device) for this type of device?
>
> Markus
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer