Modification of SPTI requests

Hello All,

Is this legal to modify by some upper or lower filter driver that add some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not to
modify such structure.

Best regards,
Oleksiy

I know of no documentation that indicates that SPT cannot be processed by
filter drivers.

=====================
Mark Roddy

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Oleksiy Shatylo
Sent: Tuesday, January 04, 2005 12:17 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Modification of SPTI requests

Hello All,

Is this legal to modify by some upper or lower filter driver that add some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not to
modify such structure.

Best regards,
Oleksiy


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

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Anything is “Legal”, that’s the point of a filter driver, to modify
behavior, including prohibiting things you don’t want. That doesn’t mean
it’s a nice thing to do, though it might be necessary, depending on why
you are filtering and what the SPTI command is.

What kind of “modification” do you want to do? If you have a filter that
translates LBAs to some other LBA range (to give a contrived example), you
probably want to remap the LBA in an SPTI command that falls within your
translation target range, so the pictore of the disk that the system sees
remains consistent.

Phil.

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

xxxxx@lists.osr.com wrote on 01/04/2005 10:17:25 AM:

Hello All,

Is this legal to modify by some upper or lower filter driver that add
some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not
to
modify such structure.

Best regards,
Oleksiy


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

You are currently subscribed to ntdev as: xxxxx@seagate.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hello All,

Thank you, for your response.

I am doing an upper filter driver that acts as MRW reader driver. The filter
driver should translate LBAs to some other LBA, to remap defective LBAs. Of
course, in completion routine for remapped SPTI requests we should restore
the original LBA. This should prevent from confusion of some user mode
application that checks, by some reason, the LBA in original
SCSI_PASS_THROUGH or SCSI_PASS_THROUGH_DIRECT structure after the SPTI
request is completed. Also filter driver should emulate the MRW mode pages
for MODE SENSE command and MRW feature for GET CONFIGURATION command.

We currently have a conflict with the MRW reader driver of another ISV.
Their driver remaps LBA in IRP_MJ_READ but not SPTI LBAs and does not
emulate MRW mode pages or MRW feature. This ISV claimed that we shouldn’t be
touching SPTI (meaning that we would be responsible of the incompatibility).

Best regards,

Oleksiy


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Philip D Barila
Sent: Tuesday, January 04, 2005 6:38 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Modification of SPTI requests

Anything is “Legal”, that’s the point of a filter driver, to modify
behavior, including prohibiting things you don’t want. That doesn’t mean
it’s a nice thing to do, though it might be necessary, depending on why you
are filtering and what the SPTI command is.

What kind of “modification” do you want to do? If you have a filter that
translates LBAs to some other LBA range (to give a contrived example), you
probably want to remap the LBA in an SPTI command that falls within your
translation target range, so the pictore of the disk that the system sees
remains consistent.

Phil.

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

xxxxx@lists.osr.com wrote on 01/04/2005 10:17:25 AM:

Hello All,

Is this legal to modify by some upper or lower filter driver that add some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not to
modify such structure.

Best regards,
Oleksiy


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

You are currently subscribed to ntdev as: xxxxx@seagate.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed to
ntdev as: xxxxx@nero.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

I’m having trouble with the concept of two MRW filter drivers operating on
the same device. Regardless, filter driver wars are probably irresolvable
unless a third party with authority steps in and mandates what is allowed
and what isn’t. I’d just ignore your ‘other ISV’ and concentrate on making
sure your driver is working correctly.

=====================
Mark Roddy


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Oleksiy Shatylo
Sent: Wednesday, January 05, 2005 5:58 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

Hello All,

Thank you, for your response.

I am doing an upper filter driver that acts as MRW reader driver. The filter
driver should translate LBAs to some other LBA, to remap defective LBAs. Of
course, in completion routine for remapped SPTI requests we should restore
the original LBA. This should prevent from confusion of some user mode
application that checks, by some reason, the LBA in original
SCSI_PASS_THROUGH or SCSI_PASS_THROUGH_DIRECT structure after the SPTI
request is completed. Also filter driver should emulate the MRW mode pages
for MODE SENSE command and MRW feature for GET CONFIGURATION command.

We currently have a conflict with the MRW reader driver of another ISV.
Their driver remaps LBA in IRP_MJ_READ but not SPTI LBAs and does not
emulate MRW mode pages or MRW feature. This ISV claimed that we shouldn’t be
touching SPTI (meaning that we would be responsible of the incompatibility).

Best regards,

Oleksiy


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Philip D Barila
Sent: Tuesday, January 04, 2005 6:38 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Modification of SPTI requests

Anything is “Legal”, that’s the point of a filter driver, to modify
behavior, including prohibiting things you don’t want. That doesn’t mean
it’s a nice thing to do, though it might be necessary, depending on why you
are filtering and what the SPTI command is.

What kind of “modification” do you want to do? If you have a filter that
translates LBAs to some other LBA range (to give a contrived example), you
probably want to remap the LBA in an SPTI command that falls within your
translation target range, so the pictore of the disk that the system sees
remains consistent.

Phil.

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

xxxxx@lists.osr.com wrote on 01/04/2005 10:17:25 AM:

Hello All,

Is this legal to modify by some upper or lower filter driver that add some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not to
modify such structure.

Best regards,
Oleksiy


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

You are currently subscribed to ntdev as: xxxxx@seagate.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed to
ntdev as: xxxxx@nero.com To unsubscribe send a blank email to
xxxxx@lists.osr.com


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

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

I am doing an upper filter driver that acts as MRW reader driver. The
filter
driver should translate LBAs to some other LBA, to remap defective LBAs. Of
course, in completion routine for remapped SPTI requests we should restore
the original LBA. This should prevent from confusion of some user mode
application that checks, by some reason, the LBA in original >>>

What user mode application do you need to “fake” to understand MRW discs?
Should that vendor, instead, update their software to deal with this issue
instead of you? Have you contacted them to update their software?

Your solution might cause some user mode apps to work again, but break
others, including some by us. When we send a CDB down to a device using
SPTI, we expect that CDB to be sent to the device. Our software understands
the capabilities of the various devices and knows which CDBs to send. Just
a thought.

Mike


Express yourself instantly with MSN Messenger! Download today - it’s FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

Your software understands the capabilities of the various devices it *knows
about*. If somebody is adding new device types and then supporting them with
an emulation layer, which is what is sounds as if the OP is doing, then the
emulation layer may very well have to perform a translation function so that
applications, that cannot be expected to know anything about the real
device, work as expected. It is sort of the point of emulation.

=====================
Mark Roddy

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mike Berhan
Sent: Wednesday, January 05, 2005 12:25 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

<<< I am doing an upper filter driver that acts as MRW reader driver. The
filter driver should translate LBAs to some other LBA, to remap defective
LBAs. Of course, in completion routine for remapped SPTI requests we should
restore the original LBA. This should prevent from confusion of some user
mode application that checks, by some reason, the LBA in original >>>

What user mode application do you need to “fake” to understand MRW discs?
Should that vendor, instead, update their software to deal with this issue
instead of you? Have you contacted them to update their software?

Your solution might cause some user mode apps to work again, but break
others, including some by us. When we send a CDB down to a device using
SPTI, we expect that CDB to be sent to the device. Our software understands
the capabilities of the various devices and knows which CDBs to send. Just
a thought.

Mike


Express yourself instantly with MSN Messenger! Download today - it’s FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


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

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

I’m speaking specifically for devices that process CDBs (not something that
will emulate the processing of CDBs). If a filter driver alters the
behavior of a SPTI request, for example alter some of the CDB bits, then my
SPTI app is not seeing the “true” response of the device. Seeing the true
reaction and response to my CDB is important to me. Here is the specific
app that expects the CDB to get unaltered to the device.

http://www.bustrace.com/busprobe/cdbexerciser/send.htm

This can become a bigger problem. Let’s say his filter driver alters an
SPTI request and I really need the original CDB to get to the device. If I
want to work around this, then I could write a filter driver below him to
get down closer to the device. What if another filter gets down even lower
than me and messes with the CDB. Anyway, it can get messy and I’d rather
not create another driver to simply send down a CDB.

Given his example, which I do not think is for an emulation device, it would
cause problems for SPTI applications that do not expect their request to be
altered before getting to the device. I am one example but I would guess
there are others. Although I do not have all the details of this issue, it
would seem that it is the user mode apps’ responsibility to add MRW support
(if he can get that vendor to do so).

Regards,

Mike

----Original Message Follows----
From: “Roddy, Mark”
Reply-To: “Windows System Software Devs Interest List”
To: “Windows System Software Devs Interest List”
Subject: RE: [ntdev] Modification of SPTI requests
Date: Wed, 5 Jan 2005 12:56:58 -0500

Your software understands the capabilities of the various devices it knows
about
. If somebody is adding new device types and then supporting them with
an emulation layer, which is what is sounds as if the OP is doing, then the
emulation layer may very well have to perform a translation function so that
applications, that cannot be expected to know anything about the real
device, work as expected. It is sort of the point of emulation.

=====================
Mark Roddy

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mike Berhan
Sent: Wednesday, January 05, 2005 12:25 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

<<< I am doing an upper filter driver that acts as MRW reader driver. The
filter driver should translate LBAs to some other LBA, to remap defective
LBAs. Of course, in completion routine for remapped SPTI requests we should
restore the original LBA. This should prevent from confusion of some user
mode application that checks, by some reason, the LBA in original >>>

What user mode application do you need to “fake” to understand MRW discs?
Should that vendor, instead, update their software to deal with this issue
instead of you? Have you contacted them to update their software?

Your solution might cause some user mode apps to work again, but break
others, including some by us. When we send a CDB down to a device using
SPTI, we expect that CDB to be sent to the device. Our software understands
the capabilities of the various devices and knows which CDBs to send. Just
a thought.

Mike


Express yourself instantly with MSN Messenger! Download today - it’s FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


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

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


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

You are currently subscribed to ntdev as: xxxxx@hotmail.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Don’t just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/

The OP should make the device behave consistently across all SCSI
interfaces. If it works one way with read/write and another with SPTI
read/write CDBs that are the same as what DISK would have sent down,
then that’s going to be really bizarre.

Mike - you might want to call SetupDI to get the list of drivers
installed on the device you’re talking to in order to make sure you’re
getting an unaltered stream. But I don’t think the answer is for any
application that wants MRW support to add it themselves for the handful
of applications that think they know how to really talk to the device
through SPTI.

-p

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mike Berhan
Sent: Wednesday, January 05, 2005 10:14 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

I’m speaking specifically for devices that process CDBs (not
something that will emulate the processing of CDBs). If a
filter driver alters the behavior of a SPTI request, for
example alter some of the CDB bits, then my SPTI app is not
seeing the “true” response of the device. Seeing the true
reaction and response to my CDB is important to me. Here is
the specific app that expects the CDB to get unaltered to the device.

http://www.bustrace.com/busprobe/cdbexerciser/send.htm

This can become a bigger problem. Let’s say his filter
driver alters an SPTI request and I really need the original
CDB to get to the device. If I want to work around this,
then I could write a filter driver below him to get down
closer to the device. What if another filter gets down even
lower than me and messes with the CDB. Anyway, it can get
messy and I’d rather not create another driver to simply send
down a CDB.

Given his example, which I do not think is for an emulation
device, it would cause problems for SPTI applications that do
not expect their request to be altered before getting to the
device. I am one example but I would guess there are others.
Although I do not have all the details of this issue, it
would seem that it is the user mode apps’ responsibility to
add MRW support (if he can get that vendor to do so).

Regards,

Mike

----Original Message Follows----
From: “Roddy, Mark”
> Reply-To: “Windows System Software Devs Interest List”
>
> To: “Windows System Software Devs Interest List”
> Subject: RE: [ntdev] Modification of SPTI requests
> Date: Wed, 5 Jan 2005 12:56:58 -0500
>
> Your software understands the capabilities of the various
> devices it knows about. If somebody is adding new device
> types and then supporting them with an emulation layer, which
> is what is sounds as if the OP is doing, then the emulation
> layer may very well have to perform a translation function so
> that applications, that cannot be expected to know anything
> about the real device, work as expected. It is sort of the
> point of emulation.
>
>
>
> =====================
> Mark Roddy
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Mike Berhan
> Sent: Wednesday, January 05, 2005 12:25 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] Modification of SPTI requests
>
> <<< I am doing an upper filter driver that acts as MRW reader
> driver. The filter driver should translate LBAs to some other
> LBA, to remap defective LBAs. Of course, in completion
> routine for remapped SPTI requests we should restore the
> original LBA. This should prevent from confusion of some user
> mode application that checks, by some reason, the LBA in original >>>
>
> What user mode application do you need to “fake” to
> understand MRW discs?
> Should that vendor, instead, update their software to deal
> with this issue instead of you? Have you contacted them to
> update their software?
>
> Your solution might cause some user mode apps to work again,
> but break others, including some by us. When we send a CDB
> down to a device using SPTI, we expect that CDB to be sent to
> the device. Our software understands the capabilities of the
> various devices and knows which CDBs to send. Just a thought.
>
> Mike
>
>
> Express yourself instantly with MSN Messenger! Download today
> - it’s FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@stratus.com To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@hotmail.com To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>

> Don’t just search. Find. Check out the new MSN Search!
> http://search.msn.click-url.com/go/onm00200636ave/direct/01/
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@windows.microsoft.com To unsubscribe send a blank
> email to xxxxx@lists.osr.com
>

Hey Peter,

Mike - you might want to call SetupDI to get the list of drivers
installed on the device you’re talking to in order to make sure you’re
getting an unaltered stream. But I don’t think the answer is for any
application that wants MRW support to add it themselves for the handful
of applications that think they know how to really talk to the device
through SPTI.

This can be problematic for me. If I use SetupDI to enumerate the drivers
installed on the device, then I need to maintain a table of drivers that I
somehow know (through customer complaints I suppose) will alter my stream.
Then I also need to know which CDBs it is altering, and how it is altering
them, so that I can deal with it accordingly. Getting that information may
be difficult if I can’t find the original author of the driver. In the end,
if this became a serious enough problem, I’d probably write yet another
kernel driver to get down just above the port driver so that I could have
direct communication with the CD/DVD device (or any CDB processing device).

In his CD/DVD example, I can see a case for IRP_MJ_SCSI filtering to occur
but not for SPTI. Granted this can cause confusion as two different paths
for sending CDBs are creating two different results (one factual, one
faked). SPTI apps communicating with CD/DVD devices I believe are primarily
CD/DVD burning software, data recovery tools, etc. These tools generally
have an understanding of the devices that they support through querying
device capabilities, sometimes having lookup tables, etc. They could detect
that a device does or doesn’t support MRW and handle this accordingly.

How do you resolve a case where a software vendor has written their SPTI app
and it works great in all their test cases and with their customers, against
MRW discs or any type of disc. Then, another vendor comes out with a filter
driver that is altering a command’s behavior and thereby breaking the app
that was previously working.

In the past, it used to be a huge problem where multiple CD/DVD software
companies would install their software and break each other, sometimes doing
serious damage to the system’s stability. Things have improved considerably
since then. However, if filter drivers start altering SPTI commands to make
one vendor’s software work, they could very well be breaking another
vendor’s software (unknown to them).

It’s hard for me to gauge how serious of a problem this could be for the
industry. Based on my experience, I would just urge caution for anyone
altering an SPTI stream. At a minimum, at least for the techies, perhaps
add an option to enable/disable that feature so the customer can alter the
behavior if it breaks something.

Regards,

Mike


Don’t just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/

> This can be problematic for me. If I use SetupDI to enumerate the drivers

installed on the device, then I need to maintain a table of drivers that I
somehow know (through customer complaints I suppose) will alter my stream.

To solve such a problem, assemble your machine yourself, remember the admin
password and NOT give it to the people which will use it.

Sorry, Windows does support filtering, including filtering of the SCSI
requests, and the only way of providing the “no-filter” guarantee is -
trustworthy installation and trustworthy deployment.

These are more organizational/management issues, and I’m much surprised about
any attempts of solving them technically. Such attempts are pathetic illusion
of security by definition.

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

The whole idea of making MRW support as filter driver is… well…
questionable )) If this particular “other ISV”
would finally “go South” with his morbid requirements I don’t see how guys
from Nero would protect themself from
the conflicts with the MRW software coming from other ISVs. I’d like to see
optical media defect management as part
of the OS and not as never ending story of custom add-ons. Sounds like
another UDF reincarnation ))

About doing something with SPTI requests… More and more of the modern
software prefers to have own path for
SCSI traffic with the help of the filter driver (sometimes even hook-based).
Who would resove load order issues in
such a case?

Regards,
Anton Kolomyeytsev

CEO, Rocket Division Software


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Wednesday, January 05, 2005 4:19 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

I’m having trouble with the concept of two MRW filter drivers operating on
the same device. Regardless, filter driver wars are probably irresolvable
unless a third party with authority steps in and mandates what is allowed
and what isn’t. I’d just ignore your ‘other ISV’ and concentrate on making
sure your driver is working correctly.

=====================
Mark Roddy


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Oleksiy Shatylo
Sent: Wednesday, January 05, 2005 5:58 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Modification of SPTI requests

Hello All,

Thank you, for your response.

I am doing an upper filter driver that acts as MRW reader driver. The filter
driver should translate LBAs to some other LBA, to remap defective LBAs. Of
course, in completion routine for remapped SPTI requests we should restore
the original LBA. This should prevent from confusion of some user mode
application that checks, by some reason, the LBA in original
SCSI_PASS_THROUGH or SCSI_PASS_THROUGH_DIRECT structure after the SPTI
request is completed. Also filter driver should emulate the MRW mode pages
for MODE SENSE command and MRW feature for GET CONFIGURATION command.

We currently have a conflict with the MRW reader driver of another ISV.
Their driver remaps LBA in IRP_MJ_READ but not SPTI LBAs and does not
emulate MRW mode pages or MRW feature. This ISV claimed that we shouldn’t be
touching SPTI (meaning that we would be responsible of the incompatibility).

Best regards,

Oleksiy


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Philip D Barila
Sent: Tuesday, January 04, 2005 6:38 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Modification of SPTI requests

Anything is “Legal”, that’s the point of a filter driver, to modify
behavior, including prohibiting things you don’t want. That doesn’t mean
it’s a nice thing to do, though it might be necessary, depending on why you
are filtering and what the SPTI command is.

What kind of “modification” do you want to do? If you have a filter that
translates LBAs to some other LBA range (to give a contrived example), you
probably want to remap the LBA in an SPTI command that falls within your
translation target range, so the pictore of the disk that the system sees
remains consistent.

Phil.

Philip D. Barila
Seagate Technology LLC
(720) 684-1842

xxxxx@lists.osr.com wrote on 01/04/2005 10:17:25 AM:

Hello All,

Is this legal to modify by some upper or lower filter driver that add some
functionality to the device the SCSI_PASS_THROUGH or
SCSI_PASS_THROUGH_DIRECT structures sent from an application to a class
driver?

I believe that this is legal, but somebody tells me that this is illegal
because a pass through is meant to go through the filter(s) without been
touched (‘through’ the filter). Unfortunately, I did not find any
information about the above question in the DDK documentation or among
internet resources which would clearly tell whether it is legal or not to
modify such structure.

Best regards,
Oleksiy


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

You are currently subscribed to ntdev as: xxxxx@seagate.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed to
ntdev as: xxxxx@nero.com To unsubscribe send a blank email to
xxxxx@lists.osr.com


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

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@cooldev.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hello All,

  1. Problem with load order:

Let’s suppose that any MRW reader in driver stack supports emulation of MRW
mode pages and MRW features. Then simple check for MRW feature or mode page
on some device allows deciding should MRW driver be activated over this
device or not. By the way any driver that emulates MRW should do so by
definition. The statements before proofs that MRW filter driver should fully
emulate MRW device behavior and report that it support MRW reading but not
MRW writing.

Of course, all drivers in the stack should emulate the MRW feature or mode
page. If driver not doing this then I would like to say that such driver not
completely perform MRW emulation.

  1. Problem with applications that can be confused by MRW emulation.

At first, I would like to notice that driver that translates LBAs for
IRP_MJ_READ only can confuse the application even more that driver that
perform full emulation.

If application have the own way that skipping other drivers in the stack to
deliver SPTI request to the device then I don’t think that MRW emulation
driver can be a problem for such application.

Application that sends the SPTI in the usual way should normally “cheated”
by MRW emulation driver and will behaves like on normal drive. Of course,
the application should take into account that it is impossible to write data
to such media because only MRW reading is supported.

Best regards,
Oleksiy

Hello all,

I will be reacting to several e-mails at once as I’m using the digest mode
of
the reflector.

I also would like to thank everyone who joined this discussion!

Anton Kolomyeytsev wrote:

The whole idea of making MRW support as filter driver is… well…
questionable ))

Ok, but so far it is the more realistic solution I see. Microsoft not only
did
not implement it in its new OSes after MRW was created, but did not, and
will
certainly not, create a patch for its already released OSes. We cannot
expect
all user mode applications to integrate MRW remapping, especially not MS
user
applications (such as Windows Explorer to take a very needed software for
the
end-user).
Would there be a viable solution different from a filter driver, I would
study
it, but sorry, I don’t see any.

If this particular “other ISV”
would finally “go South” with his morbid requirements I don’t see how guys
from Nero would protect themself from
the conflicts with the MRW software coming from other ISVs.

This is what motivated us to bring the issue here.

I’d like to see
optical media defect management as part
of the OS and not as never ending story of custom add-ons. Sounds like
another UDF reincarnation ))

Ideally, defect management would be kept at device level, like in DVD-RAM.
But
that is only my personnal feeling.

Mike Berhan wrote:

What user mode application do you need to “fake” to understand MRW discs?
Should that vendor, instead, update their software to deal with this issue
instead of you? Have you contacted them to update their software?

Windows Explorer is a good example of user-mode application which is not
MRW-
aware. But in general, optical device manufacturers want to be able to
provide
an add-on with they MRW drives so legacy drives can read the media they
generate. Because you don’t know in advance who will read the disc, where it
will be read, and what will be accessing the disc on this computer, you need
a
generic solution.

MRW remapping for legacy drives is a kind of ‘hardware’ patch done in
software.
You can’t ask device manufacturers to update the firmware of the thousand
different models they created. You can’t ask software vendors to update all
the
applications accessing a disc. A filter driver looks to me to be the most
reasonnable choice.

Your solution might cause some user mode apps to work again, but break
others, including some by us. When we send a CDB down to a device using
SPTI, we expect that CDB to be sent to the device. Our software
understands
the capabilities of the various devices and knows which CDBs to send.
Just
a thought.

Well, your application will see a MRW read capable device. Will this mean it
is
broken? On the contrary, I think it would mean it is working, both your user
mode application and our filter driver. We’re patching a lack in the
hardware,
and as long as this patch succeed so you don’t see in your user mode
application
the difference between real hardware and software emulated capability, it’s
fine.

I’m speaking specifically for devices that process CDBs (not something
that
will emulate the processing of CDBs). If a filter driver alters the
behavior of a SPTI request, for example alter some of the CDB bits, then
my
SPTI app is not seeing the “true” response of the device. Seeing the true
reaction and response to my CDB is important to me. Here is the specific
app that expects the CDB to get unaltered to the device.

http://www.bustrace.com/busprobe/cdbexerciser/send.htm

Sorry, you see the ‘true’ response of the emulated device. If you want to
by-
pass the kernel mode patch, you can’t do that in user-mode. By I doubt that
your
user-mode cdb exerciser is intended to by-pass kernel-mode fix for devices,
I
mean, you provide a way to either train to create other user-mode software
(fine, you see what they will see) or we have a hardware engineer who wants
to
train his hardware with an software patch for his lack of MRW support (I
assume
such engineer will be aware of what he installed on his test system).

This can become a bigger problem. Let’s say his filter driver alters an
SPTI request and I really need the original CDB to get to the device. If
I
want to work around this, then I could write a filter driver below him to
get down closer to the device. What if another filter gets down even
lower
than me and messes with the CDB. Anyway, it can get messy and I’d rather
not create another driver to simply send down a CDB.

Looks like you do not want MRW read feature then. Why an engineer who does
not
want MRW emulation would not simply de-install the emulation driver?

Although I do not have all the details of this issue, it
would seem that it is the user mode apps’ responsibility to add MRW
support
(if he can get that vendor to do so).

Sorry, I don’t think we can get MS to do it.

Peter Wieland wrote:

The OP should make the device behave consistently across all SCSI
interfaces. If it works one way with read/write and another with SPTI
read/write CDBs that are the same as what DISK would have sent down,
then that’s going to be really bizarre.

I share this point of view.

About user mode app trying to detect a driver doing a emulation: if somehow
you
can detect that the answer you get are emulated and not real, it means you
found
a flaw in our software. Our target is to be totally transparent so you
really
think you are speaking to a MRW read capable device.

How do you resolve a case where a software vendor has written their SPTI
app
and it works great in all their test cases and with their customers,
against
MRW discs or any type of disc. Then, another vendor comes out with a
filter
driver that is altering a command’s behavior and thereby breaking the app
that was previously working.

If the first vendor software was working on natively MRW read capable
devices,
it has to be working as well on the MRW emulated devices, or the emulation
is
somewhat broken (because not behaving identically to native devices).

At a minimum, at least for the techies, perhaps
add an option to enable/disable that feature so the customer can alter the
behavior if it breaks something.

This looks far too technical for the average user. I don’t want him to
mess-up
with something that low-level. I’d prefer him to contact our support and let
us
know of the issue, or even to de-install our software, rather that to put
his
finger on something he doesn’t know.

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line) Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com

David,

Given the choice between having standard applications (such as explorer,
word, etc.) work transparently with the filtered hardware, and perhaps
causing some problems for rather non-standard apps such as a ‘cdb exerciser’
I think your choice is obvious.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
Sent: Sunday, January 09, 2005 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Modification of SPTI requests

Hello all,

I will be reacting to several e-mails at once as I’m using
the digest mode of the reflector.

I also would like to thank everyone who joined this discussion!

Anton Kolomyeytsev wrote:

> The whole idea of making MRW support as filter driver is… well…
> questionable ))

Ok, but so far it is the more realistic solution I see.
Microsoft not only did not implement it in its new OSes after
MRW was created, but did not, and will certainly not, create
a patch for its already released OSes. We cannot expect all
user mode applications to integrate MRW remapping, especially
not MS user applications (such as Windows Explorer to take a
very needed software for the end-user).
Would there be a viable solution different from a filter
driver, I would study it, but sorry, I don’t see any.

> If this particular “other ISV”
> would finally “go South” with his morbid requirements I
don’t see how
> guys from Nero would protect themself from the conflicts
with the MRW
> software coming from other ISVs.

This is what motivated us to bring the issue here.

> I’d like to see
> optical media defect management as part of the OS and not as never
> ending story of custom add-ons. Sounds like another UDF
reincarnation
> ))

Ideally, defect management would be kept at device level,
like in DVD-RAM.
But
that is only my personnal feeling.

Mike Berhan wrote:

> What user mode application do you need to “fake” to
understand MRW discs?
> Should that vendor, instead, update their software to deal
with this
> issue instead of you? Have you contacted them to update
their software?

Windows Explorer is a good example of user-mode application
which is not
MRW-
aware. But in general, optical device manufacturers want to
be able to provide an add-on with they MRW drives so legacy
drives can read the media they generate. Because you don’t
know in advance who will read the disc, where it will be
read, and what will be accessing the disc on this computer,
you need a generic solution.

MRW remapping for legacy drives is a kind of ‘hardware’ patch
done in software.
You can’t ask device manufacturers to update the firmware of
the thousand different models they created. You can’t ask
software vendors to update all the applications accessing a
disc. A filter driver looks to me to be the most reasonnable choice.

> Your solution might cause some user mode apps to work
again, but break
> others, including some by us. When we send a CDB down to a device
> using SPTI, we expect that CDB to be sent to the device.
Our software
understands
> the capabilities of the various devices and knows which
CDBs to send.
Just
> a thought.

Well, your application will see a MRW read capable device.
Will this mean it is broken? On the contrary, I think it
would mean it is working, both your user mode application and
our filter driver. We’re patching a lack in the hardware, and
as long as this patch succeed so you don’t see in your user
mode application the difference between real hardware and
software emulated capability, it’s fine.

> I’m speaking specifically for devices that process CDBs
(not something
that
> will emulate the processing of CDBs). If a filter driver
alters the
> behavior of a SPTI request, for example alter some of the CDB bits,
> then
my
> SPTI app is not seeing the “true” response of the device.
Seeing the
> true reaction and response to my CDB is important to me.
Here is the
> specific app that expects the CDB to get unaltered to the device.
>
> http://www.bustrace.com/busprobe/cdbexerciser/send.htm

Sorry, you see the ‘true’ response of the emulated device. If
you want to
by-
pass the kernel mode patch, you can’t do that in user-mode.
By I doubt that your user-mode cdb exerciser is intended to
by-pass kernel-mode fix for devices, I mean, you provide a
way to either train to create other user-mode software (fine,
you see what they will see) or we have a hardware engineer
who wants to train his hardware with an software patch for
his lack of MRW support (I assume such engineer will be aware
of what he installed on his test system).

> This can become a bigger problem. Let’s say his filter
driver alters
> an SPTI request and I really need the original CDB to get to the
> device. If
I
> want to work around this, then I could write a filter
driver below him
> to get down closer to the device. What if another filter gets down
> even
lower
> than me and messes with the CDB. Anyway, it can get messy and I’d
> rather not create another driver to simply send down a CDB.

Looks like you do not want MRW read feature then. Why an
engineer who does not want MRW emulation would not simply
de-install the emulation driver?

> Although I do not have all the details of this issue, it would seem
> that it is the user mode apps’ responsibility to add MRW
support
> (if he can get that vendor to do so).

Sorry, I don’t think we can get MS to do it.

Peter Wieland wrote:

> The OP should make the device behave consistently across all SCSI
> interfaces. If it works one way with read/write and
another with SPTI
> read/write CDBs that are the same as what DISK would have
sent down,
> then that’s going to be really bizarre.

I share this point of view.

About user mode app trying to detect a driver doing a
emulation: if somehow you can detect that the answer you get
are emulated and not real, it means you found a flaw in our
software. Our target is to be totally transparent so you
really think you are speaking to a MRW read capable device.

> How do you resolve a case where a software vendor has written their
> SPTI
app
> and it works great in all their test cases and with their customers,
against
> MRW discs or any type of disc. Then, another vendor comes
out with a
filter
> driver that is altering a command’s behavior and thereby
breaking the
> app that was previously working.

If the first vendor software was working on natively MRW read
capable devices, it has to be working as well on the MRW
emulated devices, or the emulation is somewhat broken
(because not behaving identically to native devices).

> At a minimum, at least for the techies, perhaps add an option to
> enable/disable that feature so the customer can alter the
behavior if
> it breaks something.

This looks far too technical for the average user. I don’t
want him to mess-up with something that low-level. I’d prefer
him to contact our support and let us know of the issue, or
even to de-install our software, rather that to put his
finger on something he doesn’t know.

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line)
Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com


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

You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

Dear Mark,

Ideally, Nero would have to make no choice and will find a solution that
works for both kind of applications. The main reason we are working on these
MRW filter incompatibility, is that we have a growing amount of users
installing products from us and from other recording software ISVs, ending
in an unstable system. Recording software which possibly will be a
‘non-standard’ application. Hence we are looking for models and generic
solution that every recording software ISV can follow so we all work
together and not against each other. An unstable system is bad for all ISVs
who have software on it, as well as it is for the operating system
manufacturer.

The opinion from Microsoft is of course of prime importance to us, but we
will not neglect the opinion from ISVs. A ‘cdb exerciser’ is a quite
particular case, and hopefully if we manage to satisfy this tool, we might
have a good generic solution.

“Exceptio probat regulum”!

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line) Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com

-----Original Message-----

Subject: RE: Modification of SPTI requests
From: “Mark Roddy”
Date: Sun, 9 Jan 2005 08:19:13 -0500
X-Message-Number: 2

David,

Given the choice between having standard applications (such as explorer,
word, etc.) work transparently with the filtered hardware, and perhaps
causing some problems for rather non-standard apps such as a ‘cdb exerciser’
I think your choice is obvious.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
> Sent: Sunday, January 09, 2005 5:29 AM
> To: Windows System Software Devs Interest List
> Subject: RE:[ntdev] Modification of SPTI requests
>
> Hello all,
>
> I will be reacting to several e-mails at once as I’m using
> the digest mode of the reflector.
>
> I also would like to thank everyone who joined this discussion!
>
> Anton Kolomyeytsev wrote:
>
> > The whole idea of making MRW support as filter driver is… well…
> > questionable ))
>
> Ok, but so far it is the more realistic solution I see.
> Microsoft not only did not implement it in its new OSes after
> MRW was created, but did not, and will certainly not, create
> a patch for its already released OSes. We cannot expect all
> user mode applications to integrate MRW remapping, especially
> not MS user applications (such as Windows Explorer to take a
> very needed software for the end-user).
> Would there be a viable solution different from a filter
> driver, I would study it, but sorry, I don’t see any.
>
>
> > If this particular “other ISV”
> > would finally “go South” with his morbid requirements I
> don’t see how
> > guys from Nero would protect themself from the conflicts
> with the MRW
> > software coming from other ISVs.
>
> This is what motivated us to bring the issue here.
>
> > I’d like to see
> > optical media defect management as part of the OS and not as never
> > ending story of custom add-ons. Sounds like another UDF
> reincarnation
> > ))
>
> Ideally, defect management would be kept at device level,
> like in DVD-RAM.
> But
> that is only my personnal feeling.
>
> Mike Berhan wrote:
>
> > What user mode application do you need to “fake” to
> understand MRW discs?
> > Should that vendor, instead, update their software to deal
> with this
> > issue instead of you? Have you contacted them to update
> their software?
>
> Windows Explorer is a good example of user-mode application
> which is not
> MRW-
> aware. But in general, optical device manufacturers want to
> be able to provide an add-on with they MRW drives so legacy
> drives can read the media they generate. Because you don’t
> know in advance who will read the disc, where it will be
> read, and what will be accessing the disc on this computer,
> you need a generic solution.
>
> MRW remapping for legacy drives is a kind of ‘hardware’ patch
> done in software.
> You can’t ask device manufacturers to update the firmware of
> the thousand different models they created. You can’t ask
> software vendors to update all the applications accessing a
> disc. A filter driver looks to me to be the most reasonnable choice.
>
> > Your solution might cause some user mode apps to work
> again, but break
> > others, including some by us. When we send a CDB down to a device
> > using SPTI, we expect that CDB to be sent to the device.
> Our software
> understands
> > the capabilities of the various devices and knows which
> CDBs to send.
> Just
> > a thought.
>
> Well, your application will see a MRW read capable device.
> Will this mean it is broken? On the contrary, I think it
> would mean it is working, both your user mode application and
> our filter driver. We’re patching a lack in the hardware, and
> as long as this patch succeed so you don’t see in your user
> mode application the difference between real hardware and
> software emulated capability, it’s fine.
>
> > I’m speaking specifically for devices that process CDBs
> (not something
> that
> > will emulate the processing of CDBs). If a filter driver
> alters the
> > behavior of a SPTI request, for example alter some of the CDB bits,
> > then
> my
> > SPTI app is not seeing the “true” response of the device.
> Seeing the
> > true reaction and response to my CDB is important to me.
> Here is the
> > specific app that expects the CDB to get unaltered to the device.
> >
> > http://www.bustrace.com/busprobe/cdbexerciser/send.htm
>
> Sorry, you see the ‘true’ response of the emulated device. If
> you want to
> by-
> pass the kernel mode patch, you can’t do that in user-mode.
> By I doubt that your user-mode cdb exerciser is intended to
> by-pass kernel-mode fix for devices, I mean, you provide a
> way to either train to create other user-mode software (fine,
> you see what they will see) or we have a hardware engineer
> who wants to train his hardware with an software patch for
> his lack of MRW support (I assume such engineer will be aware
> of what he installed on his test system).
>
> > This can become a bigger problem. Let’s say his filter
> driver alters
> > an SPTI request and I really need the original CDB to get to the
> > device. If
> I
> > want to work around this, then I could write a filter
> driver below him
> > to get down closer to the device. What if another filter gets down
> > even
> lower
> > than me and messes with the CDB. Anyway, it can get messy and I’d
> > rather not create another driver to simply send down a CDB.
>
> Looks like you do not want MRW read feature then. Why an
> engineer who does not want MRW emulation would not simply
> de-install the emulation driver?
>
> > Although I do not have all the details of this issue, it would seem
> > that it is the user mode apps’ responsibility to add MRW
> support
> > (if he can get that vendor to do so).
>
> Sorry, I don’t think we can get MS to do it.
>
> Peter Wieland wrote:
>
> > The OP should make the device behave consistently across all SCSI
> > interfaces. If it works one way with read/write and
> another with SPTI
> > read/write CDBs that are the same as what DISK would have
> sent down,
> > then that’s going to be really bizarre.
>
> I share this point of view.
>
> –
>
> About user mode app trying to detect a driver doing a
> emulation: if somehow you can detect that the answer you get
> are emulated and not real, it means you found a flaw in our
> software. Our target is to be totally transparent so you
> really think you are speaking to a MRW read capable device.
>
> > How do you resolve a case where a software vendor has written their
> > SPTI
> app
> > and it works great in all their test cases and with their customers,
> against
> > MRW discs or any type of disc. Then, another vendor comes
> out with a
> filter
> > driver that is altering a command’s behavior and thereby
> breaking the
> > app that was previously working.
>
> If the first vendor software was working on natively MRW read
> capable devices, it has to be working as well on the MRW
> emulated devices, or the emulation is somewhat broken
> (because not behaving identically to native devices).
>
> > At a minimum, at least for the techies, perhaps add an option to
> > enable/disable that feature so the customer can alter the
> behavior if
> > it breaks something.
>
> This looks far too technical for the average user. I don’t
> want him to mess-up with something that low-level. I’d prefer
> him to contact our support and let us know of the issue, or
> even to de-install our software, rather that to put his
> finger on something he doesn’t know.
>
> Best regards,
>
> David Burg
>
> ----------------------------------------------------------------
> David Burg
> Software Development,
> InCD and Low Level Drivers Project Leader
>
> Nero AG phone: +49 (0)7248 911 862 (room line)
> Internal VoIP
> -363
> Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
> 76307 Karlsbad email: xxxxx@nero.com
> Germany http://www.nero.com
> ----------------------------------------------------------------
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@hollistech.com To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>



END OF DIGEST


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

You are currently subscribed to ntdev as: xxxxx@nero.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

This problem, stacked filter driver incompatibility, played across the
filesystem space for years, and still remains a problem, although I believe
less so now than a few years ago. I think that until Microsoft started
paying attention the situation was pretty much hopeless. Without some sort
of impartial authority to arbitrate, and perhaps even dictate rules, it is
difficult to establish a common framework for cooperation. In the particular
case what you want is an escape mechanism so that the ‘cdb exerciser’ app
can, for example, register its requirement for unfiltered access to the
device with any and all filter drivers in the stack.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
Sent: Monday, January 10, 2005 6:58 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Modification of SPTI requests

Dear Mark,

Ideally, Nero would have to make no choice and will find a
solution that works for both kind of applications. The main
reason we are working on these MRW filter incompatibility, is
that we have a growing amount of users installing products
from us and from other recording software ISVs, ending in an
unstable system. Recording software which possibly will be a
‘non-standard’ application. Hence we are looking for models
and generic solution that every recording software ISV can
follow so we all work together and not against each other. An
unstable system is bad for all ISVs who have software on it,
as well as it is for the operating system manufacturer.

The opinion from Microsoft is of course of prime importance
to us, but we will not neglect the opinion from ISVs. A ‘cdb
exerciser’ is a quite particular case, and hopefully if we
manage to satisfy this tool, we might have a good generic solution.

“Exceptio probat regulum”!

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line)
Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com

-----Original Message-----

Subject: RE: Modification of SPTI requests
From: “Mark Roddy”
> Date: Sun, 9 Jan 2005 08:19:13 -0500
> X-Message-Number: 2
>
> David,
>
> Given the choice between having standard applications (such
> as explorer, word, etc.) work transparently with the filtered
> hardware, and perhaps causing some problems for rather
> non-standard apps such as a ‘cdb exerciser’
> I think your choice is obvious.
>
>
> =====================
> Mark Roddy
> Windows .NET/XP/2000 Consulting
> Hollis Technology Solutions 603-321-1032 www.hollistech.com
>
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
> > Sent: Sunday, January 09, 2005 5:29 AM
> > To: Windows System Software Devs Interest List
> > Subject: RE:[ntdev] Modification of SPTI requests
> >
> > Hello all,
> >
> > I will be reacting to several e-mails at once as I’m using
> the digest
> > mode of the reflector.
> >
> > I also would like to thank everyone who joined this discussion!
> >
> > Anton Kolomyeytsev wrote:
> >
> > > The whole idea of making MRW support as filter driver
> is… well…
> > > questionable ))
> >
> > Ok, but so far it is the more realistic solution I see.
> > Microsoft not only did not implement it in its new OSes
> after MRW was
> > created, but did not, and will certainly not, create a
> patch for its
> > already released OSes. We cannot expect all user mode
> applications to
> > integrate MRW remapping, especially not MS user
> applications (such as
> > Windows Explorer to take a very needed software for the end-user).
> > Would there be a viable solution different from a filter driver, I
> > would study it, but sorry, I don’t see any.
> >
> >
> > > If this particular “other ISV”
> > > would finally “go South” with his morbid requirements I
> > don’t see how
> > > guys from Nero would protect themself from the conflicts
> > with the MRW
> > > software coming from other ISVs.
> >
> > This is what motivated us to bring the issue here.
> >
> > > I’d like to see
> > > optical media defect management as part of the OS and not
> as never
> > > ending story of custom add-ons. Sounds like another UDF
> > reincarnation
> > > ))
> >
> > Ideally, defect management would be kept at device level,
> > like in DVD-RAM.
> > But
> > that is only my personnal feeling.
> >
> > Mike Berhan wrote:
> >
> > > What user mode application do you need to “fake” to
> > understand MRW discs?
> > > Should that vendor, instead, update their software to deal
> > with this
> > > issue instead of you? Have you contacted them to update
> > their software?
> >
> > Windows Explorer is a good example of user-mode application
> > which is not
> > MRW-
> > aware. But in general, optical device manufacturers want to
> > be able to provide an add-on with they MRW drives so legacy
> > drives can read the media they generate. Because you don’t
> > know in advance who will read the disc, where it will be
> > read, and what will be accessing the disc on this computer,
> > you need a generic solution.
> >
> > MRW remapping for legacy drives is a kind of ‘hardware’ patch
> > done in software.
> > You can’t ask device manufacturers to update the firmware of
> > the thousand different models they created. You can’t ask
> > software vendors to update all the applications accessing a
> > disc. A filter driver looks to me to be the most reasonnable choice.
> >
> > > Your solution might cause some user mode apps to work
> > again, but break
> > > others, including some by us. When we send a CDB down to
> a device
> > > using SPTI, we expect that CDB to be sent to the device.
> > Our software
> > understands
> > > the capabilities of the various devices and knows which
> > CDBs to send.
> > Just
> > > a thought.
> >
> > Well, your application will see a MRW read capable device.
> > Will this mean it is broken? On the contrary, I think it
> > would mean it is working, both your user mode application and
> > our filter driver. We’re patching a lack in the hardware, and
> > as long as this patch succeed so you don’t see in your user
> > mode application the difference between real hardware and
> > software emulated capability, it’s fine.
> >
> > > I’m speaking specifically for devices that process CDBs
> > (not something
> > that
> > > will emulate the processing of CDBs). If a filter driver
> > alters the
> > > behavior of a SPTI request, for example alter some of the
> CDB bits,
> > > then
> > my
> > > SPTI app is not seeing the “true” response of the device.
> > Seeing the
> > > true reaction and response to my CDB is important to me.
> > Here is the
> > > specific app that expects the CDB to get unaltered to the device.
> > >
> > > http://www.bustrace.com/busprobe/cdbexerciser/send.htm
> >
> > Sorry, you see the ‘true’ response of the emulated device. If
> > you want to
> > by-
> > pass the kernel mode patch, you can’t do that in user-mode.
> > By I doubt that your user-mode cdb exerciser is intended to
> > by-pass kernel-mode fix for devices, I mean, you provide a
> > way to either train to create other user-mode software (fine,
> > you see what they will see) or we have a hardware engineer
> > who wants to train his hardware with an software patch for
> > his lack of MRW support (I assume such engineer will be aware
> > of what he installed on his test system).
> >
> > > This can become a bigger problem. Let’s say his filter
> > driver alters
> > > an SPTI request and I really need the original CDB to get to the
> > > device. If
> > I
> > > want to work around this, then I could write a filter
> > driver below him
> > > to get down closer to the device. What if another filter
> gets down
> > > even
> > lower
> > > than me and messes with the CDB. Anyway, it can get
> messy and I’d
> > > rather not create another driver to simply send down a CDB.
> >
> > Looks like you do not want MRW read feature then. Why an
> > engineer who does not want MRW emulation would not simply
> > de-install the emulation driver?
> >
> > > Although I do not have all the details of this issue, it
> would seem
> > > that it is the user mode apps’ responsibility to add MRW
> > support
> > > (if he can get that vendor to do so).
> >
> > Sorry, I don’t think we can get MS to do it.
> >
> > Peter Wieland wrote:
> >
> > > The OP should make the device behave consistently across all SCSI
> > > interfaces. If it works one way with read/write and
> > another with SPTI
> > > read/write CDBs that are the same as what DISK would have
> > sent down,
> > > then that’s going to be really bizarre.
> >
> > I share this point of view.
> >
> > –
> >
> > About user mode app trying to detect a driver doing a
> > emulation: if somehow you can detect that the answer you get
> > are emulated and not real, it means you found a flaw in our
> > software. Our target is to be totally transparent so you
> > really think you are speaking to a MRW read capable device.
> >
> > > How do you resolve a case where a software vendor has
> written their
> > > SPTI
> > app
> > > and it works great in all their test cases and with their
> customers,
> > against
> > > MRW discs or any type of disc. Then, another vendor comes
> > out with a
> > filter
> > > driver that is altering a command’s behavior and thereby
> > breaking the
> > > app that was previously working.
> >
> > If the first vendor software was working on natively MRW read
> > capable devices, it has to be working as well on the MRW
> > emulated devices, or the emulation is somewhat broken
> > (because not behaving identically to native devices).
> >
> > > At a minimum, at least for the techies, perhaps add an option to
> > > enable/disable that feature so the customer can alter the
> > behavior if
> > > it breaks something.
> >
> > This looks far too technical for the average user. I don’t
> > want him to mess-up with something that low-level. I’d prefer
> > him to contact our support and let us know of the issue, or
> > even to de-install our software, rather that to put his
> > finger on something he doesn’t know.
> >
> > Best regards,
> >
> > David Burg
> >
> > ----------------------------------------------------------------
> > David Burg
> > Software Development,
> > InCD and Low Level Drivers Project Leader
> >
> > Nero AG phone: +49 (0)7248 911 862 (room line)
> > Internal VoIP
> > -363
> > Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
> > 76307 Karlsbad email: xxxxx@nero.com
> > Germany http://www.nero.com
> > ----------------------------------------------------------------
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@hollistech.com To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
>
>
>
>
>
>
> —
>
> END OF DIGEST
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@nero.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@hollistech.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

So let me ask a non-development question. Is anyone seeing a big demand
for MRW (CD or DVD)? Given that at in many cases, software defect
management can be performed (e.g., by UDFS drivers), we are not seeing
this demand.

Over the years the CD-ROM stack has been very fragile and has
accumulated lots of filters. I hope anyone on this list is going to
provide a clean way to uninstall their filters.

-----Original Message-----
From: Mark Roddy [mailto:xxxxx@hollistech.com]
Sent: Sunday, January 09, 2005 5:19 AM
Subject: RE: Modification of SPTI requests

David,

Given the choice between having standard applications (such as explorer,
word, etc.) work transparently with the filtered hardware, and perhaps
causing some problems for rather non-standard apps such as a ‘cdb
exerciser’
I think your choice is obvious.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
Sent: Sunday, January 09, 2005 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Modification of SPTI requests

Hello all,

I will be reacting to several e-mails at once as I’m using
the digest mode of the reflector.

I also would like to thank everyone who joined this discussion!

Anton Kolomyeytsev wrote:

> The whole idea of making MRW support as filter driver is… well…
> questionable ))

Ok, but so far it is the more realistic solution I see.
Microsoft not only did not implement it in its new OSes after
MRW was created, but did not, and will certainly not, create
a patch for its already released OSes. We cannot expect all
user mode applications to integrate MRW remapping, especially
not MS user applications (such as Windows Explorer to take a
very needed software for the end-user).
Would there be a viable solution different from a filter
driver, I would study it, but sorry, I don’t see any.

> If this particular “other ISV”
> would finally “go South” with his morbid requirements I
don’t see how
> guys from Nero would protect themself from the conflicts
with the MRW
> software coming from other ISVs.

This is what motivated us to bring the issue here.

> I’d like to see
> optical media defect management as part of the OS and not as never
> ending story of custom add-ons. Sounds like another UDF
reincarnation
> ))

Ideally, defect management would be kept at device level,
like in DVD-RAM.
But
that is only my personnal feeling.

Mike Berhan wrote:

> What user mode application do you need to “fake” to
understand MRW discs?
> Should that vendor, instead, update their software to deal
with this
> issue instead of you? Have you contacted them to update
their software?

Windows Explorer is a good example of user-mode application
which is not
MRW-
aware. But in general, optical device manufacturers want to
be able to provide an add-on with they MRW drives so legacy
drives can read the media they generate. Because you don’t
know in advance who will read the disc, where it will be
read, and what will be accessing the disc on this computer,
you need a generic solution.

MRW remapping for legacy drives is a kind of ‘hardware’ patch
done in software.
You can’t ask device manufacturers to update the firmware of
the thousand different models they created. You can’t ask
software vendors to update all the applications accessing a
disc. A filter driver looks to me to be the most reasonnable choice.

> Your solution might cause some user mode apps to work
again, but break
> others, including some by us. When we send a CDB down to a device
> using SPTI, we expect that CDB to be sent to the device.
Our software
understands
> the capabilities of the various devices and knows which
CDBs to send.
Just
> a thought.

Well, your application will see a MRW read capable device.
Will this mean it is broken? On the contrary, I think it
would mean it is working, both your user mode application and
our filter driver. We’re patching a lack in the hardware, and
as long as this patch succeed so you don’t see in your user
mode application the difference between real hardware and
software emulated capability, it’s fine.

> I’m speaking specifically for devices that process CDBs
(not something
that
> will emulate the processing of CDBs). If a filter driver
alters the
> behavior of a SPTI request, for example alter some of the CDB bits,
> then
my
> SPTI app is not seeing the “true” response of the device.
Seeing the
> true reaction and response to my CDB is important to me.
Here is the
> specific app that expects the CDB to get unaltered to the device.
>
> http://www.bustrace.com/busprobe/cdbexerciser/send.htm

Sorry, you see the ‘true’ response of the emulated device. If
you want to
by-
pass the kernel mode patch, you can’t do that in user-mode.
By I doubt that your user-mode cdb exerciser is intended to
by-pass kernel-mode fix for devices, I mean, you provide a
way to either train to create other user-mode software (fine,
you see what they will see) or we have a hardware engineer
who wants to train his hardware with an software patch for
his lack of MRW support (I assume such engineer will be aware
of what he installed on his test system).

> This can become a bigger problem. Let’s say his filter
driver alters
> an SPTI request and I really need the original CDB to get to the
> device. If
I
> want to work around this, then I could write a filter
driver below him
> to get down closer to the device. What if another filter gets down
> even
lower
> than me and messes with the CDB. Anyway, it can get messy and I’d
> rather not create another driver to simply send down a CDB.

Looks like you do not want MRW read feature then. Why an
engineer who does not want MRW emulation would not simply
de-install the emulation driver?

> Although I do not have all the details of this issue, it would seem
> that it is the user mode apps’ responsibility to add MRW
support
> (if he can get that vendor to do so).

Sorry, I don’t think we can get MS to do it.

Peter Wieland wrote:

> The OP should make the device behave consistently across all SCSI
> interfaces. If it works one way with read/write and
another with SPTI
> read/write CDBs that are the same as what DISK would have
sent down,
> then that’s going to be really bizarre.

I share this point of view.

About user mode app trying to detect a driver doing a
emulation: if somehow you can detect that the answer you get
are emulated and not real, it means you found a flaw in our
software. Our target is to be totally transparent so you
really think you are speaking to a MRW read capable device.

> How do you resolve a case where a software vendor has written their
> SPTI
app
> and it works great in all their test cases and with their customers,
against
> MRW discs or any type of disc. Then, another vendor comes
out with a
filter
> driver that is altering a command’s behavior and thereby
breaking the
> app that was previously working.

If the first vendor software was working on natively MRW read
capable devices, it has to be working as well on the MRW
emulated devices, or the emulation is somewhat broken
(because not behaving identically to native devices).

> At a minimum, at least for the techies, perhaps add an option to
> enable/disable that feature so the customer can alter the
behavior if
> it breaks something.

This looks far too technical for the average user. I don’t
want him to mess-up with something that low-level. I’d prefer
him to contact our support and let us know of the issue, or
even to de-install our software, rather that to put his
finger on something he doesn’t know.

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line)
Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com


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

You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

So I had to go find out what the heck an “MRW Disk” is, which I think
answers your question from my perspective.

=====================
Mark Roddy

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jeffrey Goldner
Sent: Monday, January 10, 2005 10:19 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Modification of SPTI requests

So let me ask a non-development question. Is anyone seeing a big demand for
MRW (CD or DVD)? Given that at in many cases, software defect management can
be performed (e.g., by UDFS drivers), we are not seeing this demand.

Over the years the CD-ROM stack has been very fragile and has accumulated
lots of filters. I hope anyone on this list is going to provide a clean way
to uninstall their filters.

-----Original Message-----
From: Mark Roddy [mailto:xxxxx@hollistech.com]
Sent: Sunday, January 09, 2005 5:19 AM
Subject: RE: Modification of SPTI requests

David,

Given the choice between having standard applications (such as explorer,
word, etc.) work transparently with the filtered hardware, and perhaps
causing some problems for rather non-standard apps such as a ‘cdb exerciser’
I think your choice is obvious.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032 www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of David Burg
Sent: Sunday, January 09, 2005 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Modification of SPTI requests

Hello all,

I will be reacting to several e-mails at once as I’m using the digest
mode of the reflector.

I also would like to thank everyone who joined this discussion!

Anton Kolomyeytsev wrote:

> The whole idea of making MRW support as filter driver is… well…
> questionable ))

Ok, but so far it is the more realistic solution I see.
Microsoft not only did not implement it in its new OSes after MRW was
created, but did not, and will certainly not, create a patch for its
already released OSes. We cannot expect all user mode applications to
integrate MRW remapping, especially not MS user applications (such as
Windows Explorer to take a very needed software for the end-user).
Would there be a viable solution different from a filter driver, I
would study it, but sorry, I don’t see any.

> If this particular “other ISV”
> would finally “go South” with his morbid requirements I
don’t see how
> guys from Nero would protect themself from the conflicts
with the MRW
> software coming from other ISVs.

This is what motivated us to bring the issue here.

> I’d like to see
> optical media defect management as part of the OS and not as never
> ending story of custom add-ons. Sounds like another UDF
reincarnation
> ))

Ideally, defect management would be kept at device level,
like in DVD-RAM.
But
that is only my personnal feeling.

Mike Berhan wrote:

> What user mode application do you need to “fake” to
understand MRW discs?
> Should that vendor, instead, update their software to deal
with this
> issue instead of you? Have you contacted them to update
their software?

Windows Explorer is a good example of user-mode application
which is not
MRW-
aware. But in general, optical device manufacturers want to
be able to provide an add-on with they MRW drives so legacy
drives can read the media they generate. Because you don’t
know in advance who will read the disc, where it will be
read, and what will be accessing the disc on this computer,
you need a generic solution.

MRW remapping for legacy drives is a kind of ‘hardware’ patch
done in software.
You can’t ask device manufacturers to update the firmware of
the thousand different models they created. You can’t ask
software vendors to update all the applications accessing a
disc. A filter driver looks to me to be the most reasonnable choice.

> Your solution might cause some user mode apps to work
again, but break
> others, including some by us. When we send a CDB down to a device
> using SPTI, we expect that CDB to be sent to the device.
Our software
understands
> the capabilities of the various devices and knows which
CDBs to send.
Just
> a thought.

Well, your application will see a MRW read capable device.
Will this mean it is broken? On the contrary, I think it
would mean it is working, both your user mode application and
our filter driver. We’re patching a lack in the hardware, and
as long as this patch succeed so you don’t see in your user
mode application the difference between real hardware and
software emulated capability, it’s fine.

> I’m speaking specifically for devices that process CDBs
(not something
that
> will emulate the processing of CDBs). If a filter driver
alters the
> behavior of a SPTI request, for example alter some of the CDB bits,
> then
my
> SPTI app is not seeing the “true” response of the device.
Seeing the
> true reaction and response to my CDB is important to me.
Here is the
> specific app that expects the CDB to get unaltered to the device.
>
> http://www.bustrace.com/busprobe/cdbexerciser/send.htm

Sorry, you see the ‘true’ response of the emulated device. If
you want to
by-
pass the kernel mode patch, you can’t do that in user-mode.
By I doubt that your user-mode cdb exerciser is intended to
by-pass kernel-mode fix for devices, I mean, you provide a
way to either train to create other user-mode software (fine,
you see what they will see) or we have a hardware engineer
who wants to train his hardware with an software patch for
his lack of MRW support (I assume such engineer will be aware
of what he installed on his test system).

> This can become a bigger problem. Let’s say his filter
driver alters
> an SPTI request and I really need the original CDB to get to the
> device. If
I
> want to work around this, then I could write a filter
driver below him
> to get down closer to the device. What if another filter gets down
> even
lower
> than me and messes with the CDB. Anyway, it can get messy and I’d
> rather not create another driver to simply send down a CDB.

Looks like you do not want MRW read feature then. Why an
engineer who does not want MRW emulation would not simply
de-install the emulation driver?

> Although I do not have all the details of this issue, it would seem
> that it is the user mode apps’ responsibility to add MRW
support
> (if he can get that vendor to do so).

Sorry, I don’t think we can get MS to do it.

Peter Wieland wrote:

> The OP should make the device behave consistently across all SCSI
> interfaces. If it works one way with read/write and
another with SPTI
> read/write CDBs that are the same as what DISK would have
sent down,
> then that’s going to be really bizarre.

I share this point of view.

About user mode app trying to detect a driver doing a
emulation: if somehow you can detect that the answer you get
are emulated and not real, it means you found a flaw in our
software. Our target is to be totally transparent so you
really think you are speaking to a MRW read capable device.

> How do you resolve a case where a software vendor has written their
> SPTI
app
> and it works great in all their test cases and with their customers,
against
> MRW discs or any type of disc. Then, another vendor comes
out with a
filter
> driver that is altering a command’s behavior and thereby
breaking the
> app that was previously working.

If the first vendor software was working on natively MRW read
capable devices, it has to be working as well on the MRW
emulated devices, or the emulation is somewhat broken
(because not behaving identically to native devices).

> At a minimum, at least for the techies, perhaps add an option to
> enable/disable that feature so the customer can alter the
behavior if
> it breaks something.

This looks far too technical for the average user. I don’t
want him to mess-up with something that low-level. I’d prefer
him to contact our support and let us know of the issue, or
even to de-install our software, rather that to put his
finger on something he doesn’t know.

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line)
Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 911 888
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com


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

You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
xxxxx@lists.osr.com


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

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com