Storage Stack

Greetings,

I have a basic doubt regarding Windows Storage stack operation.
Does Windows storage stack process the commands synchronously or asyncronously?
I mean, if I am sending multiple commands to a storport device using multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows storage stack capable of handling these commands in parallel? or it just queue this commands and does the processing?

Regards,
Sony

>IOCTL_SCSI_PASSTHROUGH, does the windows storage stack capable of handling these

commands in parallel

Try using a file handle per thread.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

xxxxx@rediffmail.com wrote:

I have a basic doubt regarding Windows Storage stack operation.
Does Windows storage stack process the commands synchronously or asyncronously?
I mean, if I am sending multiple commands to a storport device using multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows storage stack capable of handling these commands in parallel? or it just queue this commands and does the processing?

Remember that, at the lowest level, disk drives can only handle one
command at a time. At some point down the line, requests must be
serialized. The exact point where that happens is not of particular
interest.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim,

Your comment should be qualified by “in general”. There are drives
that can handle more than one command at a time, but these are mostly
specialty hardware. There are solid state drives that can do this,
there used to be multiple actuator drives that could access hard disks
in parallel.

This is one of the reasons people were frustrated with the SCSIPort
model, it assumed pretty much the single command at a time model.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

“Tim Roberts” wrote in message news:xxxxx@ntdev:

> xxxxx@rediffmail.com wrote:
> > I have a basic doubt regarding Windows Storage stack operation.
> > Does Windows storage stack process the commands synchronously or asyncronously?
> > I mean, if I am sending multiple commands to a storport device using multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows storage stack capable of handling these commands in parallel? or it just queue this commands and does the processing?
>
> Remember that, at the lowest level, disk drives can only handle one
> command at a time. At some point down the line, requests must be
> serialized. The exact point where that happens is not of particular
> interest.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.

In what context are you guys talking about this?

For probably near (maybe over) 20 years, we have had tagged commands, and
we routinely get many, many commands outstanding to a drive at a time,
even with ScsiPort’s early implementations.

I think the OP’s question was about the port driver, not the guts of the
drives.

“Don Burn”
Sent by: xxxxx@lists.osr.com
10/25/2010 01:42 PM
Please respond to
“Windows System Software Devs Interest List”

To
“Windows System Software Devs Interest List”
cc

Subject
Re:[ntdev] Storage Stack

Tim,

Your comment should be qualified by “in general”. There are drives
that can handle more than one command at a time, but these are mostly
specialty hardware. There are solid state drives that can do this,
there used to be multiple actuator drives that could access hard disks
in parallel.

This is one of the reasons people were frustrated with the SCSIPort
model, it assumed pretty much the single command at a time model.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

“Tim Roberts” wrote in message news:xxxxx@ntdev:

> xxxxx@rediffmail.com wrote:
> > I have a basic doubt regarding Windows Storage stack operation.
> > Does Windows storage stack process the commands synchronously or
asyncronously?
> > I mean, if I am sending multiple commands to a storport device using
multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows
storage stack capable of handling these commands in parallel? or it just
queue this commands and does the processing?
>
> Remember that, at the lowest level, disk drives can only handle one
> command at a time. At some point down the line, requests must be
> serialized. The exact point where that happens is not of particular
> interest.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

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

I’m not even clear what ‘disk drive’ means in this context.

Mark Roddy

On Mon, Oct 25, 2010 at 1:55 PM, wrote:

>
> In what context are you guys talking about this?
>
> For probably near (maybe over) 20 years, we have had tagged commands, and
> we routinely get many, many commands outstanding to a drive at a time, even
> with ScsiPort’s early implementations.
>
> I think the OP’s question was about the port driver, not the guts of the
> drives.
>
>
>
> “Don Burn”
> Sent by: xxxxx@lists.osr.com
>
> 10/25/2010 01:42 PM
> Please respond to
> “Windows System Software Devs Interest List”
>
> To
> “Windows System Software Devs Interest List”
> cc
> Subject
> Re:[ntdev] Storage Stack
>
>
>
>
> Tim,
>
> Your comment should be qualified by “in general”. There are drives
> that can handle more than one command at a time, but these are mostly
> specialty hardware. There are solid state drives that can do this,
> there used to be multiple actuator drives that could access hard disks
> in parallel.
>
> This is one of the reasons people were frustrated with the SCSIPort
> model, it assumed pretty much the single command at a time model.
>
>
> Don Burn (MVP, Windows DKD)
> Windows Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
>
>
>
>
>
> “Tim Roberts” wrote in message news:xxxxx@ntdev:
>
> > xxxxx@rediffmail.com wrote:
> > > I have a basic doubt regarding Windows Storage stack operation.
> > > Does Windows storage stack process the commands synchronously or
> asyncronously?
> > > I mean, if I am sending multiple commands to a storport device using
> multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows
> storage stack capable of handling these commands in parallel? or it just
> queue this commands and does the processing?
> >
> > Remember that, at the lowest level, disk drives can only handle one
> > command at a time. At some point down the line, requests must be
> > serialized. The exact point where that happens is not of particular
> > interest.
> >
> > –
> > Tim Roberts, xxxxx@probo.com
> > Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> — NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer

> Remember that, at the lowest level, disk drives can only handle one

command at a time

Not SCSI and not modern ATA NCQ drives.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

> This is one of the reasons people were frustrated with the SCSIPort

model, it assumed pretty much the single command at a time model.

MultipleRequestsPerLU was there even in scsiport.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

My intent was only to clarify that ScsiPort always has supported multiple
commands at the target at a time. The drives got into the discussion
because in order for ScsiPort to be able to do this, the target has to be
able to accept multiple commands rather than one at a time and most disk
drives support this.

Mark Roddy
Sent by: xxxxx@lists.osr.com
10/25/2010 11:19 PM
Please respond to
“Windows System Software Devs Interest List”

To
“Windows System Software Devs Interest List”
cc

Subject
Re: [ntdev] Storage Stack

I’m not even clear what ‘disk drive’ means in this context.

Mark Roddy

On Mon, Oct 25, 2010 at 1:55 PM, wrote:

In what context are you guys talking about this?

For probably near (maybe over) 20 years, we have had tagged commands, and
we routinely get many, many commands outstanding to a drive at a time,
even with ScsiPort’s early implementations.

I think the OP’s question was about the port driver, not the guts of the
drives.

“Don Burn”
Sent by: xxxxx@lists.osr.com
10/25/2010 01:42 PM

Please respond to
“Windows System Software Devs Interest List”

To
“Windows System Software Devs Interest List”
cc

Subject
Re:[ntdev] Storage Stack

Tim,

Your comment should be qualified by “in general”. There are drives
that can handle more than one command at a time, but these are mostly
specialty hardware. There are solid state drives that can do this,
there used to be multiple actuator drives that could access hard disks
in parallel.

This is one of the reasons people were frustrated with the SCSIPort
model, it assumed pretty much the single command at a time model.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

“Tim Roberts” wrote in message news:xxxxx@ntdev:

> xxxxx@rediffmail.com wrote:
> > I have a basic doubt regarding Windows Storage stack operation.
> > Does Windows storage stack process the commands synchronously or
asyncronously?
> > I mean, if I am sending multiple commands to a storport device using
multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows
storage stack capable of handling these commands in parallel? or it just
queue this commands and does the processing?
>
> Remember that, at the lowest level, disk drives can only handle one
> command at a time. At some point down the line, requests must be
> serialized. The exact point where that happens is not of particular
> interest.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

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

— NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

— NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

And if you had some of the specialty disks I talked about the ScsiPort
scheme was inadequate, which is what I was talking about.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

xxxxx@attotech.com” wrote in message
news:xxxxx@ntdev:

> My intent was only to clarify that ScsiPort always has supported multiple
> commands at the target at a time. The drives got into the discussion
> because in order for ScsiPort to be able to do this, the target has to be
> able to accept multiple commands rather than one at a time and most disk
> drives support this.
>
>
>
>
> Mark Roddy
> Sent by: xxxxx@lists.osr.com
> 10/25/2010 11:19 PM
> Please respond to
> “Windows System Software Devs Interest List”
>
>
> To
> “Windows System Software Devs Interest List”
> cc
>
> Subject
> Re: [ntdev] Storage Stack
>
>
>
>
>
>
> I’m not even clear what ‘disk drive’ means in this context.
>
> Mark Roddy
>
>
> On Mon, Oct 25, 2010 at 1:55 PM, wrote:
>
> In what context are you guys talking about this?
>
> For probably near (maybe over) 20 years, we have had tagged commands, and
> we routinely get many, many commands outstanding to a drive at a time,
> even with ScsiPort’s early implementations.
>
> I think the OP’s question was about the port driver, not the guts of the
> drives.
>
>
>
>
> “Don Burn”
> Sent by: xxxxx@lists.osr.com
> 10/25/2010 01:42 PM
>
>
> Please respond to
> “Windows System Software Devs Interest List”
>
>
> To
> “Windows System Software Devs Interest List”
> cc
>
> Subject
> Re:[ntdev] Storage Stack
>
>
>
>
>
>
>
>
> Tim,
>
> Your comment should be qualified by “in general”. There are drives
> that can handle more than one command at a time, but these are mostly
> specialty hardware. There are solid state drives that can do this,
> there used to be multiple actuator drives that could access hard disks
> in parallel.
>
> This is one of the reasons people were frustrated with the SCSIPort
> model, it assumed pretty much the single command at a time model.
>
>
> Don Burn (MVP, Windows DKD)
> Windows Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
>
>
>
>
>
> “Tim Roberts” wrote in message news:xxxxx@ntdev:
>
> > xxxxx@rediffmail.com wrote:
> > > I have a basic doubt regarding Windows Storage stack operation.
> > > Does Windows storage stack process the commands synchronously or
> asyncronously?
> > > I mean, if I am sending multiple commands to a storport device using
> multihtreaded application using IOCTL_SCSI_PASSTHROUGH, does the windows
> storage stack capable of handling these commands in parallel? or it just
> queue this commands and does the processing?
> >
> > Remember that, at the lowest level, disk drives can only handle one
> > command at a time. At some point down the line, requests must be
> > serialized. The exact point where that happens is not of particular
> > interest.
> >
> > –
> > Tim Roberts, xxxxx@probo.com
> > Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> — NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> — NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer