Can you call IoCallDriver() from a SCSI miniport driver?
Thanks,
Joe
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Can you call IoCallDriver() from a SCSI miniport driver?
Thanks,
Joe
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
It depends on what you mean by ‘can’. Strictly speaking the answer is “yes
you can”, but the consequences of doing so will most likely be a system
bugcheck, unless you know exactly what you are doing.
If your source file includes “miniport.h” then IoCallDriver is undefined,
so all of your NT specific operations have to be in a separate source file
that includes “ntddk.h” (or “wdm.h”.)
Within a ‘miniport context’ which is to say a miniport supplied routine
called by scsiport, you are generally executing at DIRQL (although in some
cases this may be DISPATCH_LEVEL, like if you do not have an interrupt
object,) and that will perhaps result in rather unfortunate behavior on the
part of the target of an IoCallDriver request.
-----Original Message-----
From: Joe Moriarty [mailto:xxxxx@east.sun.com]
Sent: Monday, September 10, 2001 10:52 AM
To: NT Developers Interest List
Subject: [ntdev] SCSI miniport question
Can you call IoCallDriver() from a SCSI miniport driver?
Thanks,
Joe
You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> -----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Roddy, Mark
Sent: Monday, September 10, 2001 11:03 AM
To: NT Developers Interest List
Subject: [ntdev] RE: SCSI miniport questionIt depends on what you mean by ‘can’. Strictly speaking the answer is “yes
you can”, but the consequences of doing so will most likely be a system
bugcheck, unless you know exactly what you are doing.
If your source file includes “miniport.h” then IoCallDriver is
undefined,
so all of your NT specific operations have to be in a separate source file
that includes “ntddk.h” (or “wdm.h”.)Within a ‘miniport context’ which is to say a miniport supplied routine
called by scsiport, you are generally executing at DIRQL (although in some
cases this may be DISPATCH_LEVEL, like if you do not have an interrupt
object,) and that will perhaps result in rather unfortunate
behavior on the
part of the target of an IoCallDriver request.
As long as the target driver handles DISPATCH_LEVEL requests I will be ok.
I am also assuming here that no interrupt object means that I will always be
called at DISPATCH_LEVEL. In addition, if my HBA is a virtual device, then
I have to spoof the claim device SRBs that come the PORT driver/storage
class drivers. Is that correct?
Joe
-----Original Message-----
From: Joe Moriarty [mailto:xxxxx@east.sun.com]
Sent: Monday, September 10, 2001 10:52 AM
To: NT Developers Interest List
Subject: [ntdev] SCSI miniport questionCan you call IoCallDriver() from a SCSI miniport driver?
Thanks,
Joe
You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@east.sun.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
No, I don’t see any reason why you need to do anything about
SRB_FUNCTION_CLAIM_DEVICE. This is sent by class drivers to port drivers and
handled entirely by the port driver without any interface with the miniport
driver. If your virtual HBA poofs up a scsi target that looks like a disk
device, the scsi disk class driver will claim it.
-----Original Message-----
As long as the target driver handles DISPATCH_LEVEL requests I will be ok. I
am also assuming here that no interrupt object means that I will always be
called at DISPATCH_LEVEL. In addition, if my HBA is a virtual device, then
I have to spoof the claim device SRBs that come the PORT driver/storage
class drivers. Is that correct?
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com