[ros-kernel] BusLogic 958 SCSI miniport

Hartmut Birr Hartmut.Birr at gmx.de
Tue Mar 23 22:35:08 CET 2004


Hi,

I think that some of your changes are not correct (removing of
IRP_FLAG_COMPLETE). Currently there exist two ways to call
ScsiPortNotification with the notification type RequestComplete (which
does set IRP_FLAG_COMPLETE). The command are always started with a call
to KeSynchronizeExecution. In the first way ScsiPortNotification is
called from atapi as result of a command which is completed immediately
without an interrupt. The requestor checks for IRP_FLAG_COMPLETE and
completes the request. In the second way ScsiPortNotification is called
from atapi as result of a command which is completed some times later
from an interrupt. The requestor returns without any action. The
interrupt routine request a dpc, which does complete the request. If the
interrupt is very fast, the interrupt routine calls ScsiPortNotification
and request a dpc before KeSynchronizeExecution returns to the
requestor. The requestor completes the request and the pending dpc has
nothing to do. The Dpc checks for IRP_FLAG_COMPLETE and does nothing.
After your changes the the requestor of a command waits always of a call
to RequestComplete. This wait occurs at dpc level. 

- Hartmut  

> -----Original Message-----
> From: ros-kernel-bounces at reactos.com 
> [mailto:ros-kernel-bounces at reactos.com] On Behalf Of Filip Navara
> Sent: Tuesday, March 23, 2004 5:17 PM
> To: ros-kernel at reactos.com
> Subject: [ros-kernel] BusLogic 958 SCSI miniport
> 
> 
> Hi all,
> 
> after some more hacking with ScsiPort I got the BusLogic 958 SCSI 
> controller (the one emulated by VMware) driver working under 
> ReactOS. I 
> successfully installed and started ReactOS with it. The patch 
> that makes 
> all this possible is attached, but it needs some verfication before 
> commiting. (Please have patience with me, I never worked on storage 
> drivers. :-)
> 
> Regards,
> Filip
> 
> Changelog:
> 
> * Always return STATUS_SUCCESS from ScsiPortInitialize if some device 
> was found.
> * Changed the way of completing Irps that encapsulate SCSI 
> requesty blocks.
> * Minor correction to setting of SrbExtension.
> * Changed DPRINT1 to DPRINT on some places.
> 
> 



More information about the Ros-kernel mailing list