Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Thread in "virtual" SCSI miniport driver

0 views
Skip to first unread message

tek...@ms1.hinet.net

unread,
Oct 20, 1997, 3:00:00 AM10/20/97
to

Hi,

I am writing a "virtual" SCSI miniport driver. That is, a driver that
accepts requests from SCSI port driver and returns information as if
it has physically access some hardware devices. Because there is no
hardware devices physically exist, there is no ISR in this driver.
Instead, it is event driven. When a request from SCSI port driver
is received in StartIo(), it is passed down to another lower driver.
After the request is completed, a completion routine is called thru
IoCompleteRequest()(from lower driver), within there ScsiPortNotification()
is called with RequestComplete. But now the problem arises. SCSI port
driver does not issues the next request immediately. There are 2 conditions:

1. If I set a timer using ScsiPortNotIfication(RequestTimerCall...),
SCSI port will issue next request right after the timer routine is
called.
2. If timer is disabled, SCSI port will reset SCSI bus(after about 20
sec, about the timeout value in SRB) and issue next request.

Note: I have tried calling ScsiPortNotification(NextRequest...) after
RequestComplete. Result is the same.

Apparently this problem is related to thread switching.

So how do I "force" the SCSI miniport driver thread to execute after
ScsiPortNotification(RequestComplete...) is called? (I believe it is
still within the context of lower driver thread).

Thanx for your time.

Peng

0 new messages