Thanks for your reply. I forgot the relevant information.
So, there is an XP professional SP1 and ASPI v4.71. As I told you the
driver a simple pass-through one. Here is its general dispatch routine
(appart from PnP and power handling ones):
NTSTATUS DispatchGeneral( IN PDEVICE_OBJECT pDeviceObject, IN PIRP
pIrp )
{
PDEVICE_EXTENSION pDeviceExtension = (PDEVICE_EXTENSION)
pDeviceObject->DeviceExtension;
PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation( pIrp );
//
NTSTATUS ntStatus;
ntStatus = IoAcquireRemoveLock( &pDeviceExtension->RemoveLock, pIrp
);
if( !NT_SUCCESS( ntStatus ) )
{
return CompleteRequest( pIrp, ntStatus );
}
// Pass request down without additional processing
IoSkipCurrentIrpStackLocation( pIrp );
ntStatus = IoCallDriver( pDeviceExtension->pLowerDeviceObject, pIrp
);
IoReleaseRemoveLock( &pDeviceExtension->RemoveLock, pIrp );
//
return ntStatus;
}
The crash is DRIVER_IRQL_NOT_LESS_OR_EQUAL inside ATAPI.SYS. After
the parameters passed to BugCheckEx I can see that ATAPI.SYS tries to
READ some invalid memory (0x00000018) at DISPATCH_LEVEL. The stack
trace shows that after my "IoCallDriver" call, ATAPI.SYS crashes when
calls IdeStartDirectIo or something like that.
Very strange as long as the driver works fine with IRPs from usal
driver stacks, but not ASPI. And ASPI works fine without my driver.
Thanks,
Clark
"Brian Catlin" <> wrote in message news:<ujjZcJL$>...
> "Clark Kent" <> wrote in message
> news: m...
> > Hi,
> >
> > I've just written a dummy pass-through bus filter that works fine on
> > Windows 2000 but on Windows XP crashes when ASPI driver sends a
> > request.
> > Has anyone of you met this problem ? Thanks.
>
> What type of crash?
>
> -Brian
>
> Brian Catlin, Sannas Consulting 310-944-9492
> Windows Network, Video, WDM Device Driver Training & Consulting
> See WWW.AZIUS.COM.bad for courses and scheduling
> REMOVE .BAD FROM EMAIL AND WEB ADDRESS