Block at the final stage while installing OS

Hi, all

I’m writing scsi miniport driver.

I set ConfigInfo->CachesData = TRUE in FindAdapter routine.

In the StartIO routine
case SRB_FUNCTION_FLUSH just return SRB_STATUS_SUCCESS
case SRB_FUNCTION_SHUTDOWN

  1. Disable HBA Interrupt
  2. Issue Flush/Flush_Ext to all SATA Hdds
  3. Wait for all Hdds status change to ready (TFD = 50h)
  4. Enable HBA Interrupt
  5. Return SRB_STATUS_SUCCESS

While I install Windows 2000/ 2003 on my device, it will block at the final
stage(wait for restarting) in text mode setup
But this situation will not happen while installing other OS.

I’ve tried to modify SRB_FUNCTION_SHUTDOWN handing like delay 1 second then
return SRB_STATUS_SUCCESS
This handle is OK

One more strange condition
Success condition : After OS issue SRB_FUNCTION_SHUTDOWN, there should no
any other command.
Failed condition : After OS issue SRB_FUNCTION_SHUTDOWN, there’re several
read/write commands issued, then block.

What’s the correct handle in SRB_FUNCTION_FLUSH & SRB_FUNCTION_SHUTDOWN?H
In the following link
http://download.microsoft.com/download/5/7/7/577a5684-8a83-43ae-9272-ff260a9
c20e2/DevelopingASerialAtaMiniport.doc

Driver should just issue flush to device in case SRB_FUNCTION_FLUSH &
SRB_FUNCTION_SHUTDOWN
I also tried, but condition is the same.