scsi inquiry cdb's - Storage

This is a discussion on scsi inquiry cdb's - Storage ; Sorry, I'm sure this isn't the best group, but I only have access to the MS news servers at the moment. We're trying to come up with a "proprietary" code page for a proprietary inquiry command. We have software that ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: scsi inquiry cdb's

  1. scsi inquiry cdb's

    Sorry, I'm sure this isn't the best group, but I only have access to the MS news servers at the moment. We're trying to
    come up with a "proprietary" code page for a proprietary inquiry command. We have software that sits between an
    application and raw physical drives. Normally, if the app issued an inquiry, we'd just do a SCSI pass-through to the
    drive beneath us, but we want to be able to pass some "internal" information back to the application.

    So, a couple of questions related to this. Is there a list of "standard" code pages (page codes?) somewhere so I could
    know what to avoid? Is EVPD always ON if pagecode is non-zero? While it would be highly unusual for us to do anything
    other than a vanilla inquiry, I'd like for us to not get in our own way should the need arise...

    Thanks for any help.



  2. Re: scsi inquiry cdb's

    I don't think I fully understand your request. Is this your own device? And
    is your "app" a filter driver?

    Vendor unique pages use C0-FF (See spc-3 - current revision is at
    http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1. Yes, you
    use EVPD=1. You should be careful using vendor unique code pages on devices
    that are not your own.

    "Tom Stewart" wrote in message
    news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    > Sorry, I'm sure this isn't the best group, but I only have access to the
    > MS news servers at the moment. We're trying to
    > come up with a "proprietary" code page for a proprietary inquiry command.
    > We have software that sits between an
    > application and raw physical drives. Normally, if the app issued an
    > inquiry, we'd just do a SCSI pass-through to the
    > drive beneath us, but we want to be able to pass some "internal"
    > information back to the application.
    >
    > So, a couple of questions related to this. Is there a list of "standard"
    > code pages (page codes?) somewhere so I could
    > know what to avoid? Is EVPD always ON if pagecode is non-zero? While it
    > would be highly unusual for us to do anything
    > other than a vanilla inquiry, I'd like for us to not get in our own way
    > should the need arise...
    >
    > Thanks for any help.
    >
    >




  3. Re: scsi inquiry cdb's

    Hi Jeff- thanks for your interest. We have an app that is essentially a port of an operating system (MAGIC) that runs on
    many hardware platforms. In order to maintain the vast majority of the source code to be the same across platforms, the
    OS/application assembles its own SCSI CDB's, as it is accustomed to sending them directly to hardware via its own device
    drivers. On the Windows platform, we have a layer of software (the Operating System Abstraction Layer -- OSAL) that sits
    between MAGIC and Windows which translates these CDB's (and other i/o requests) into ReadFile and WriteFile requests.
    And that accounts for 99.999% of the SCSI commands we issue. But, being conceptually an OS, it does want to inventory
    devices, and query devices, etc. We originally (in our OSAL) tried to map the real hardware address to the address that
    Magic sees, as this seemed to make things easier for support -- if I'm talking about CSL 2,1,0, we all know which device
    that is.

    In recent years, with the advent of SANs and fibre channel, and transparent failover drivers, etc., sometimes the CSL
    changes mid-flight -- not something this legacy OS cares to know about. Not necessarily a problem, since we can still
    let Magic use the old address (since we have a HANDLE to the disk) but when you talk about adding devices on the fly
    it's conceivable that a new device will get an address that conflicts with one of the "old" addresses we used to know
    about. So, we've re-vamped our mapping entirely, algorithmically generating a CSL based on the physical drive number,
    based on a fundamental belief that that ain't gonna change while we have a handle to it.

    All very good, except that for support purposes, we do on occasion want to know what the "real" (current) address is. We
    can very easily have Magic craft a special inquiry CDB (using a non-zero pagecode) and when the OSAL intercepts it (it's
    not a filter driver, it's just code that gets linked in to the .EXE, so it's actually a call) we can detect that it's
    "the special flavor" inquiry and handle it ourselves, filling in Magic's buffer with our own info about the device
    (including the current address), rather than taking the normal route which would be to send it down to the device via
    scsi passthrough.

    It's not hard, and all the code is in place to do this, I just want to make the best choice of inquiry parameters so
    that we wouldn't be intercepting a real, valid inquiry. For instance, when running on an EVA storage platform, we issue
    an inquiry with EVPD true and a pagecode of 131 which the storage system will answer by filling in the buffer with the
    WWN of the device. I know that there are some well defined pagecodes, but I don't know of a nice reference which lists
    them. For instance, there is one which returns a list of all the valid pagecodes that one might inquire against. Also,
    if it were true that for all non-zero pagecodes, EVPD must be asserted, then I could very easily pick a combination
    such as EVPD off and pagecode 210, or whatever, confident that if I did pass it down to the hardware it would just
    generate an error.

    Thanks if you've read this far, and even more if you can help :-)

    --
    Tom

    "Jeff Goldner [MS]" wrote in message news:uHjwocPVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > I don't think I fully understand your request. Is this your own device? And
    > is your "app" a filter driver?
    >
    > Vendor unique pages use C0-FF (See spc-3 - current revision is at
    > http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1. Yes, you
    > use EVPD=1. You should be careful using vendor unique code pages on devices
    > that are not your own.
    >
    > "Tom Stewart" wrote in message
    > news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    > > Sorry, I'm sure this isn't the best group, but I only have access to the
    > > MS news servers at the moment. We're trying to
    > > come up with a "proprietary" code page for a proprietary inquiry command.
    > > We have software that sits between an
    > > application and raw physical drives. Normally, if the app issued an
    > > inquiry, we'd just do a SCSI pass-through to the
    > > drive beneath us, but we want to be able to pass some "internal"
    > > information back to the application.
    > >
    > > So, a couple of questions related to this. Is there a list of "standard"
    > > code pages (page codes?) somewhere so I could
    > > know what to avoid? Is EVPD always ON if pagecode is non-zero? While it
    > > would be highly unusual for us to do anything
    > > other than a vanilla inquiry, I'd like for us to not get in our own way
    > > should the need arise...
    > >
    > > Thanks for any help.
    > >
    > >

    >
    >




  4. Re: scsi inquiry cdb's

    Defined page codes are in SPC-3 (again,
    http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf). This tells you that
    page 131 (decimal) is really page 83h, which is the device identifier page.
    Vendor unique page codes start at C0. I know of several vendors that use
    these, including IBM. If you started at FF and worked your way down, you
    might be safe.

    "Tom Stewart" wrote in message
    news:eneXvkTVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > Hi Jeff- thanks for your interest. We have an app that is essentially a
    > port of an operating system (MAGIC) that runs on
    > many hardware platforms. In order to maintain the vast majority of the
    > source code to be the same across platforms, the
    > OS/application assembles its own SCSI CDB's, as it is accustomed to
    > sending them directly to hardware via its own device
    > drivers. On the Windows platform, we have a layer of software (the
    > Operating System Abstraction Layer -- OSAL) that sits
    > between MAGIC and Windows which translates these CDB's (and other i/o
    > requests) into ReadFile and WriteFile requests.
    > And that accounts for 99.999% of the SCSI commands we issue. But, being
    > conceptually an OS, it does want to inventory
    > devices, and query devices, etc. We originally (in our OSAL) tried to map
    > the real hardware address to the address that
    > Magic sees, as this seemed to make things easier for support -- if I'm
    > talking about CSL 2,1,0, we all know which device
    > that is.
    >
    > In recent years, with the advent of SANs and fibre channel, and
    > transparent failover drivers, etc., sometimes the CSL
    > changes mid-flight -- not something this legacy OS cares to know about.
    > Not necessarily a problem, since we can still
    > let Magic use the old address (since we have a HANDLE to the disk) but
    > when you talk about adding devices on the fly
    > it's conceivable that a new device will get an address that conflicts with
    > one of the "old" addresses we used to know
    > about. So, we've re-vamped our mapping entirely, algorithmically
    > generating a CSL based on the physical drive number,
    > based on a fundamental belief that that ain't gonna change while we have a
    > handle to it.
    >
    > All very good, except that for support purposes, we do on occasion want to
    > know what the "real" (current) address is. We
    > can very easily have Magic craft a special inquiry CDB (using a non-zero
    > pagecode) and when the OSAL intercepts it (it's
    > not a filter driver, it's just code that gets linked in to the .EXE, so
    > it's actually a call) we can detect that it's
    > "the special flavor" inquiry and handle it ourselves, filling in Magic's
    > buffer with our own info about the device
    > (including the current address), rather than taking the normal route which
    > would be to send it down to the device via
    > scsi passthrough.
    >
    > It's not hard, and all the code is in place to do this, I just want to
    > make the best choice of inquiry parameters so
    > that we wouldn't be intercepting a real, valid inquiry. For instance, when
    > running on an EVA storage platform, we issue
    > an inquiry with EVPD true and a pagecode of 131 which the storage system
    > will answer by filling in the buffer with the
    > WWN of the device. I know that there are some well defined pagecodes, but
    > I don't know of a nice reference which lists
    > them. For instance, there is one which returns a list of all the valid
    > pagecodes that one might inquire against. Also,
    > if it were true that for all non-zero pagecodes, EVPD must be asserted,
    > then I could very easily pick a combination
    > such as EVPD off and pagecode 210, or whatever, confident that if I did
    > pass it down to the hardware it would just
    > generate an error.
    >
    > Thanks if you've read this far, and even more if you can help :-)
    >
    > --
    > Tom
    >
    > "Jeff Goldner [MS]" wrote in message
    > news:uHjwocPVEHA.1472@TK2MSFTNGP09.phx.gbl...
    >> I don't think I fully understand your request. Is this your own device?
    >> And
    >> is your "app" a filter driver?
    >>
    >> Vendor unique pages use C0-FF (See spc-3 - current revision is at
    >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1. Yes,
    >> you
    >> use EVPD=1. You should be careful using vendor unique code pages on
    >> devices
    >> that are not your own.
    >>
    >> "Tom Stewart" wrote in message
    >> news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    >> > Sorry, I'm sure this isn't the best group, but I only have access to
    >> > the
    >> > MS news servers at the moment. We're trying to
    >> > come up with a "proprietary" code page for a proprietary inquiry
    >> > command.
    >> > We have software that sits between an
    >> > application and raw physical drives. Normally, if the app issued an
    >> > inquiry, we'd just do a SCSI pass-through to the
    >> > drive beneath us, but we want to be able to pass some "internal"
    >> > information back to the application.
    >> >
    >> > So, a couple of questions related to this. Is there a list of
    >> > "standard"
    >> > code pages (page codes?) somewhere so I could
    >> > know what to avoid? Is EVPD always ON if pagecode is non-zero? While it
    >> > would be highly unusual for us to do anything
    >> > other than a vanilla inquiry, I'd like for us to not get in our own way
    >> > should the need arise...
    >> >
    >> > Thanks for any help.
    >> >
    >> >

    >>
    >>

    >
    >




  5. Re: scsi inquiry cdb's

    Thanks again Jeff. Would it be "safer" to use EVPD=0 with a non-zero, vendor-unique page
    code then?

    --
    Tom

    "Jeff Goldner [MS]" wrote in message
    news:ubLGlIaWEHA.2576@TK2MSFTNGP10.phx.gbl...
    > Defined page codes are in SPC-3 (again,
    > http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf). This tells you that
    > page 131 (decimal) is really page 83h, which is the device identifier page.
    > Vendor unique page codes start at C0. I know of several vendors that use
    > these, including IBM. If you started at FF and worked your way down, you
    > might be safe.
    >
    > "Tom Stewart" wrote in message
    > news:eneXvkTVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > > Hi Jeff- thanks for your interest. We have an app that is essentially a
    > > port of an operating system (MAGIC) that runs on
    > > many hardware platforms. In order to maintain the vast majority of the
    > > source code to be the same across platforms, the
    > > OS/application assembles its own SCSI CDB's, as it is accustomed to
    > > sending them directly to hardware via its own device
    > > drivers. On the Windows platform, we have a layer of software (the
    > > Operating System Abstraction Layer -- OSAL) that sits
    > > between MAGIC and Windows which translates these CDB's (and other i/o
    > > requests) into ReadFile and WriteFile requests.
    > > And that accounts for 99.999% of the SCSI commands we issue. But, being
    > > conceptually an OS, it does want to inventory
    > > devices, and query devices, etc. We originally (in our OSAL) tried to map
    > > the real hardware address to the address that
    > > Magic sees, as this seemed to make things easier for support -- if I'm
    > > talking about CSL 2,1,0, we all know which device
    > > that is.
    > >
    > > In recent years, with the advent of SANs and fibre channel, and
    > > transparent failover drivers, etc., sometimes the CSL
    > > changes mid-flight -- not something this legacy OS cares to know about.
    > > Not necessarily a problem, since we can still
    > > let Magic use the old address (since we have a HANDLE to the disk) but
    > > when you talk about adding devices on the fly
    > > it's conceivable that a new device will get an address that conflicts with
    > > one of the "old" addresses we used to know
    > > about. So, we've re-vamped our mapping entirely, algorithmically
    > > generating a CSL based on the physical drive number,
    > > based on a fundamental belief that that ain't gonna change while we have a
    > > handle to it.
    > >
    > > All very good, except that for support purposes, we do on occasion want to
    > > know what the "real" (current) address is. We
    > > can very easily have Magic craft a special inquiry CDB (using a non-zero
    > > pagecode) and when the OSAL intercepts it (it's
    > > not a filter driver, it's just code that gets linked in to the .EXE, so
    > > it's actually a call) we can detect that it's
    > > "the special flavor" inquiry and handle it ourselves, filling in Magic's
    > > buffer with our own info about the device
    > > (including the current address), rather than taking the normal route which
    > > would be to send it down to the device via
    > > scsi passthrough.
    > >
    > > It's not hard, and all the code is in place to do this, I just want to
    > > make the best choice of inquiry parameters so
    > > that we wouldn't be intercepting a real, valid inquiry. For instance, when
    > > running on an EVA storage platform, we issue
    > > an inquiry with EVPD true and a pagecode of 131 which the storage system
    > > will answer by filling in the buffer with the
    > > WWN of the device. I know that there are some well defined pagecodes, but
    > > I don't know of a nice reference which lists
    > > them. For instance, there is one which returns a list of all the valid
    > > pagecodes that one might inquire against. Also,
    > > if it were true that for all non-zero pagecodes, EVPD must be asserted,
    > > then I could very easily pick a combination
    > > such as EVPD off and pagecode 210, or whatever, confident that if I did
    > > pass it down to the hardware it would just
    > > generate an error.
    > >
    > > Thanks if you've read this far, and even more if you can help :-)
    > >
    > > --
    > > Tom
    > >
    > > "Jeff Goldner [MS]" wrote in message
    > > news:uHjwocPVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > >> I don't think I fully understand your request. Is this your own device?
    > >> And
    > >> is your "app" a filter driver?
    > >>
    > >> Vendor unique pages use C0-FF (See spc-3 - current revision is at
    > >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1. Yes,
    > >> you
    > >> use EVPD=1. You should be careful using vendor unique code pages on
    > >> devices
    > >> that are not your own.
    > >>
    > >> "Tom Stewart" wrote in message
    > >> news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    > >> > Sorry, I'm sure this isn't the best group, but I only have access to
    > >> > the
    > >> > MS news servers at the moment. We're trying to
    > >> > come up with a "proprietary" code page for a proprietary inquiry
    > >> > command.
    > >> > We have software that sits between an
    > >> > application and raw physical drives. Normally, if the app issued an
    > >> > inquiry, we'd just do a SCSI pass-through to the
    > >> > drive beneath us, but we want to be able to pass some "internal"
    > >> > information back to the application.
    > >> >
    > >> > So, a couple of questions related to this. Is there a list of
    > >> > "standard"
    > >> > code pages (page codes?) somewhere so I could
    > >> > know what to avoid? Is EVPD always ON if pagecode is non-zero? While it
    > >> > would be highly unusual for us to do anything
    > >> > other than a vanilla inquiry, I'd like for us to not get in our own way
    > >> > should the need arise...
    > >> >
    > >> > Thanks for any help.
    > >> >
    > >> >
    > >>
    > >>

    > >
    > >

    >
    >




  6. Re: scsi inquiry cdb's

    well, technically I think this violates the standard, but since you are
    sending command to yourself you might not care. But what happens if this
    gets to another vendors storage device?

    "Tom Stewart" wrote in message
    news:u5xX1$dWEHA.2176@TK2MSFTNGP11.phx.gbl...
    > Thanks again Jeff. Would it be "safer" to use EVPD=0 with a non-zero,
    > vendor-unique page
    > code then?
    >
    > --
    > Tom
    >
    > "Jeff Goldner [MS]" wrote in message
    > news:ubLGlIaWEHA.2576@TK2MSFTNGP10.phx.gbl...
    >> Defined page codes are in SPC-3 (again,
    >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf). This tells you that
    >> page 131 (decimal) is really page 83h, which is the device identifier
    >> page.
    >> Vendor unique page codes start at C0. I know of several vendors that use
    >> these, including IBM. If you started at FF and worked your way down, you
    >> might be safe.
    >>
    >> "Tom Stewart" wrote in message
    >> news:eneXvkTVEHA.1472@TK2MSFTNGP09.phx.gbl...
    >> > Hi Jeff- thanks for your interest. We have an app that is essentially a
    >> > port of an operating system (MAGIC) that runs on
    >> > many hardware platforms. In order to maintain the vast majority of the
    >> > source code to be the same across platforms, the
    >> > OS/application assembles its own SCSI CDB's, as it is accustomed to
    >> > sending them directly to hardware via its own device
    >> > drivers. On the Windows platform, we have a layer of software (the
    >> > Operating System Abstraction Layer -- OSAL) that sits
    >> > between MAGIC and Windows which translates these CDB's (and other i/o
    >> > requests) into ReadFile and WriteFile requests.
    >> > And that accounts for 99.999% of the SCSI commands we issue. But, being
    >> > conceptually an OS, it does want to inventory
    >> > devices, and query devices, etc. We originally (in our OSAL) tried to
    >> > map
    >> > the real hardware address to the address that
    >> > Magic sees, as this seemed to make things easier for support -- if I'm
    >> > talking about CSL 2,1,0, we all know which device
    >> > that is.
    >> >
    >> > In recent years, with the advent of SANs and fibre channel, and
    >> > transparent failover drivers, etc., sometimes the CSL
    >> > changes mid-flight -- not something this legacy OS cares to know about.
    >> > Not necessarily a problem, since we can still
    >> > let Magic use the old address (since we have a HANDLE to the disk) but
    >> > when you talk about adding devices on the fly
    >> > it's conceivable that a new device will get an address that conflicts
    >> > with
    >> > one of the "old" addresses we used to know
    >> > about. So, we've re-vamped our mapping entirely, algorithmically
    >> > generating a CSL based on the physical drive number,
    >> > based on a fundamental belief that that ain't gonna change while we
    >> > have a
    >> > handle to it.
    >> >
    >> > All very good, except that for support purposes, we do on occasion want
    >> > to
    >> > know what the "real" (current) address is. We
    >> > can very easily have Magic craft a special inquiry CDB (using a
    >> > non-zero
    >> > pagecode) and when the OSAL intercepts it (it's
    >> > not a filter driver, it's just code that gets linked in to the .EXE, so
    >> > it's actually a call) we can detect that it's
    >> > "the special flavor" inquiry and handle it ourselves, filling in
    >> > Magic's
    >> > buffer with our own info about the device
    >> > (including the current address), rather than taking the normal route
    >> > which
    >> > would be to send it down to the device via
    >> > scsi passthrough.
    >> >
    >> > It's not hard, and all the code is in place to do this, I just want to
    >> > make the best choice of inquiry parameters so
    >> > that we wouldn't be intercepting a real, valid inquiry. For instance,
    >> > when
    >> > running on an EVA storage platform, we issue
    >> > an inquiry with EVPD true and a pagecode of 131 which the storage
    >> > system
    >> > will answer by filling in the buffer with the
    >> > WWN of the device. I know that there are some well defined pagecodes,
    >> > but
    >> > I don't know of a nice reference which lists
    >> > them. For instance, there is one which returns a list of all the valid
    >> > pagecodes that one might inquire against. Also,
    >> > if it were true that for all non-zero pagecodes, EVPD must be
    >> > asserted,
    >> > then I could very easily pick a combination
    >> > such as EVPD off and pagecode 210, or whatever, confident that if I did
    >> > pass it down to the hardware it would just
    >> > generate an error.
    >> >
    >> > Thanks if you've read this far, and even more if you can help :-)
    >> >
    >> > --
    >> > Tom
    >> >
    >> > "Jeff Goldner [MS]" wrote in message
    >> > news:uHjwocPVEHA.1472@TK2MSFTNGP09.phx.gbl...
    >> >> I don't think I fully understand your request. Is this your own
    >> >> device?
    >> >> And
    >> >> is your "app" a filter driver?
    >> >>
    >> >> Vendor unique pages use C0-FF (See spc-3 - current revision is at
    >> >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1.
    >> >> Yes,
    >> >> you
    >> >> use EVPD=1. You should be careful using vendor unique code pages on
    >> >> devices
    >> >> that are not your own.
    >> >>
    >> >> "Tom Stewart" wrote in message
    >> >> news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    >> >> > Sorry, I'm sure this isn't the best group, but I only have access to
    >> >> > the
    >> >> > MS news servers at the moment. We're trying to
    >> >> > come up with a "proprietary" code page for a proprietary inquiry
    >> >> > command.
    >> >> > We have software that sits between an
    >> >> > application and raw physical drives. Normally, if the app issued an
    >> >> > inquiry, we'd just do a SCSI pass-through to the
    >> >> > drive beneath us, but we want to be able to pass some "internal"
    >> >> > information back to the application.
    >> >> >
    >> >> > So, a couple of questions related to this. Is there a list of
    >> >> > "standard"
    >> >> > code pages (page codes?) somewhere so I could
    >> >> > know what to avoid? Is EVPD always ON if pagecode is non-zero? While
    >> >> > it
    >> >> > would be highly unusual for us to do anything
    >> >> > other than a vanilla inquiry, I'd like for us to not get in our own
    >> >> > way
    >> >> > should the need arise...
    >> >> >
    >> >> > Thanks for any help.
    >> >> >
    >> >> >
    >> >>
    >> >>
    >> >
    >> >

    >>
    >>

    >
    >




  7. Re: scsi inquiry cdb's

    It should just return an error, according to the spec. But lacking a bug in our code, it
    shouldn't get there.
    Thanks again, Jeff.

    --
    Tom

    "Jeff Goldner [MS]" wrote in message
    news:eP6czjmWEHA.808@tk2msftngp13.phx.gbl...
    > well, technically I think this violates the standard, but since you are
    > sending command to yourself you might not care. But what happens if this
    > gets to another vendors storage device?
    >
    > "Tom Stewart" wrote in message
    > news:u5xX1$dWEHA.2176@TK2MSFTNGP11.phx.gbl...
    > > Thanks again Jeff. Would it be "safer" to use EVPD=0 with a non-zero,
    > > vendor-unique page
    > > code then?
    > >
    > > --
    > > Tom
    > >
    > > "Jeff Goldner [MS]" wrote in message
    > > news:ubLGlIaWEHA.2576@TK2MSFTNGP10.phx.gbl...
    > >> Defined page codes are in SPC-3 (again,
    > >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf). This tells you that
    > >> page 131 (decimal) is really page 83h, which is the device identifier
    > >> page.
    > >> Vendor unique page codes start at C0. I know of several vendors that use
    > >> these, including IBM. If you started at FF and worked your way down, you
    > >> might be safe.
    > >>
    > >> "Tom Stewart" wrote in message
    > >> news:eneXvkTVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > >> > Hi Jeff- thanks for your interest. We have an app that is essentially a
    > >> > port of an operating system (MAGIC) that runs on
    > >> > many hardware platforms. In order to maintain the vast majority of the
    > >> > source code to be the same across platforms, the
    > >> > OS/application assembles its own SCSI CDB's, as it is accustomed to
    > >> > sending them directly to hardware via its own device
    > >> > drivers. On the Windows platform, we have a layer of software (the
    > >> > Operating System Abstraction Layer -- OSAL) that sits
    > >> > between MAGIC and Windows which translates these CDB's (and other i/o
    > >> > requests) into ReadFile and WriteFile requests.
    > >> > And that accounts for 99.999% of the SCSI commands we issue. But, being
    > >> > conceptually an OS, it does want to inventory
    > >> > devices, and query devices, etc. We originally (in our OSAL) tried to
    > >> > map
    > >> > the real hardware address to the address that
    > >> > Magic sees, as this seemed to make things easier for support -- if I'm
    > >> > talking about CSL 2,1,0, we all know which device
    > >> > that is.
    > >> >
    > >> > In recent years, with the advent of SANs and fibre channel, and
    > >> > transparent failover drivers, etc., sometimes the CSL
    > >> > changes mid-flight -- not something this legacy OS cares to know about.
    > >> > Not necessarily a problem, since we can still
    > >> > let Magic use the old address (since we have a HANDLE to the disk) but
    > >> > when you talk about adding devices on the fly
    > >> > it's conceivable that a new device will get an address that conflicts
    > >> > with
    > >> > one of the "old" addresses we used to know
    > >> > about. So, we've re-vamped our mapping entirely, algorithmically
    > >> > generating a CSL based on the physical drive number,
    > >> > based on a fundamental belief that that ain't gonna change while we
    > >> > have a
    > >> > handle to it.
    > >> >
    > >> > All very good, except that for support purposes, we do on occasion want
    > >> > to
    > >> > know what the "real" (current) address is. We
    > >> > can very easily have Magic craft a special inquiry CDB (using a
    > >> > non-zero
    > >> > pagecode) and when the OSAL intercepts it (it's
    > >> > not a filter driver, it's just code that gets linked in to the .EXE, so
    > >> > it's actually a call) we can detect that it's
    > >> > "the special flavor" inquiry and handle it ourselves, filling in
    > >> > Magic's
    > >> > buffer with our own info about the device
    > >> > (including the current address), rather than taking the normal route
    > >> > which
    > >> > would be to send it down to the device via
    > >> > scsi passthrough.
    > >> >
    > >> > It's not hard, and all the code is in place to do this, I just want to
    > >> > make the best choice of inquiry parameters so
    > >> > that we wouldn't be intercepting a real, valid inquiry. For instance,
    > >> > when
    > >> > running on an EVA storage platform, we issue
    > >> > an inquiry with EVPD true and a pagecode of 131 which the storage
    > >> > system
    > >> > will answer by filling in the buffer with the
    > >> > WWN of the device. I know that there are some well defined pagecodes,
    > >> > but
    > >> > I don't know of a nice reference which lists
    > >> > them. For instance, there is one which returns a list of all the valid
    > >> > pagecodes that one might inquire against. Also,
    > >> > if it were true that for all non-zero pagecodes, EVPD must be
    > >> > asserted,
    > >> > then I could very easily pick a combination
    > >> > such as EVPD off and pagecode 210, or whatever, confident that if I did
    > >> > pass it down to the hardware it would just
    > >> > generate an error.
    > >> >
    > >> > Thanks if you've read this far, and even more if you can help :-)
    > >> >
    > >> > --
    > >> > Tom
    > >> >
    > >> > "Jeff Goldner [MS]" wrote in message
    > >> > news:uHjwocPVEHA.1472@TK2MSFTNGP09.phx.gbl...
    > >> >> I don't think I fully understand your request. Is this your own
    > >> >> device?
    > >> >> And
    > >> >> is your "app" a filter driver?
    > >> >>
    > >> >> Vendor unique pages use C0-FF (See spc-3 - current revision is at
    > >> >> http://www.t10.org/ftp/t10/drafts/spc3/spc3r19.pdf, section 7.6.1.
    > >> >> Yes,
    > >> >> you
    > >> >> use EVPD=1. You should be careful using vendor unique code pages on
    > >> >> devices
    > >> >> that are not your own.
    > >> >>
    > >> >> "Tom Stewart" wrote in message
    > >> >> news:OF7nicvUEHA.704@TK2MSFTNGP09.phx.gbl...
    > >> >> > Sorry, I'm sure this isn't the best group, but I only have access to
    > >> >> > the
    > >> >> > MS news servers at the moment. We're trying to
    > >> >> > come up with a "proprietary" code page for a proprietary inquiry
    > >> >> > command.
    > >> >> > We have software that sits between an
    > >> >> > application and raw physical drives. Normally, if the app issued an
    > >> >> > inquiry, we'd just do a SCSI pass-through to the
    > >> >> > drive beneath us, but we want to be able to pass some "internal"
    > >> >> > information back to the application.
    > >> >> >
    > >> >> > So, a couple of questions related to this. Is there a list of
    > >> >> > "standard"
    > >> >> > code pages (page codes?) somewhere so I could
    > >> >> > know what to avoid? Is EVPD always ON if pagecode is non-zero? While
    > >> >> > it
    > >> >> > would be highly unusual for us to do anything
    > >> >> > other than a vanilla inquiry, I'd like for us to not get in our own
    > >> >> > way
    > >> >> > should the need arise...
    > >> >> >
    > >> >> > Thanks for any help.
    > >> >> >
    > >> >> >
    > >> >>
    > >> >>
    > >> >
    > >> >
    > >>
    > >>

    > >
    > >

    >
    >




+ Reply to Thread