Try “dumpbin /ALL /RAWDATA:NONE C:\WINDOWS\system32\drivers\usbd.sys” or the
equivalent on your test system. I think you will see that USBD
_ParseDescriptors is not in a paged section. This is not conclusive - USBD
_ParseDescriptors could access paged data. My first option would be to
report the bug as a ddk bug and get clarification from microsoft. If you
post your query on the microsoft public device driver newsgroup you may get
some rather immediate action. The newgroup is
microsoft.public.development.device.drivers and there is a public nntp
server at msnews.microsoft.com.
-----Original Message-----
From: Kurt Ludwig [mailto:xxxxx@bizadigm.net]
Sent: Thursday, March 14, 2002 7:29 AM
To: NT Developers Interest List
Subject: [ntdev] RE: USB Filter driver ASSERTs at IRQL 2 when
calling USBD _ParseDescriptorsMark,
thanks for your help.
I am new to dumpbin and a little bit confused about its
functionality. Would you please give me a hint, how to use
DUMPBIN to check whether a certain export function is pageable or not?TIA!
Kurt> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
> Sent: Mittwoch, 13. M?rz 2002 17:51
> To: NT Developers Interest List
> Subject: [ntdev] RE: USB Filter driver ASSERTs at IRQL 2 when
> calling USBD _ParseDescriptors
>
>
> The assert is from the PAGED_CODE() macro, which implies that
> either the DDK
> is wrong or that the software is using PAGED_CODE()
> inappropriately. I’d
> suggest reporting the bug as a ddk bug and fixing your code
> to not do that.
> Your completion routine needs to hand this off to a work
> item. Alternately
> you could of course ignore the checked build after verifying
> that these
> functions are indeed not pageable (use dumpbin.)
>
> > -----Original Message-----
> > From: xxxxx@bizadigm.net [mailto:xxxxx@bizadigm.net]
> > Sent: Wednesday, March 13, 2002 11:15 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] USB Filter driver ASSERTs at IRQL 2 when
> > calling USBD_ParseDescriptors
> >
> >
> > I have written an USB filter driver that is trying to change
> > some elements of the config descriptors of our USB device.
> > For this purpose I have registered a completion routine for
> > URB_FUNCTION_CONTROL_TRANSFER. Everything is working fine,
> > except that I’m getting an ASSERT from the checked build of
> > USBD.SYS when calling USBD_ParseDescriptors from my
> > completion routine. This happens both under Windows Me and
> Windows XP.
> >
> > I don’t understand this ASSERT, since the DDK says: Callers
> > of USBD_ParseDescriptors can be running at IRQL <=
> > DISPATCH_LEVEL. My completion routine is running at
> > DISPATCH_LEVEL (= 2). So, where’s the problem?
> >
> > This is the ASSERT as seen under XP:
> >
> > 1:EX: Pageable code called at IRQL 2
> > 1:
> > *** Assertion failed: FALSE
> > *** Source File:
d:\xpclient\drivers\wdm\usb\usbd\service.c, line
> > 477
> >
> > And this is the appropriate calling stack:
> >
> > ChildEBP RetAddr
> > fc8e3a50 805265a6 nt!DbgBreakPoint
> > fc8e3d34 805265d3 nt!RtlAssert2+0xd8
> > fc8e3d50 fc99d5a0 nt!RtlAssert+0x16
> > fc8e3d70 fae6b387 USBD!USBD_ParseDescriptors+0x41
> > fc8e3d98 fae6de0c myfilt!OnUrbFcnCtrlXfer+0xf8
> > fc8e3dd4 fae6f80f myfilt!OnUrbComplete+0x50
> > fc8e3e08 804d5a14 nt!IovpLocalCompletionRoutine+0xb2
> > fc8e3e38 80639736 nt!IopfCompleteRequest+0xa0
> > fc8e3ea0 fc0ce493 nt!IovCompleteRequest+0x90
> > fc8e3eec fc0d4810 USBPORT!USBPORT_CompleteTransfer+0x5ab
> > fc8e3f20 fc0d7e27 USBPORT!USBPORT_DoneTransfer+0x252
> > fc8e3f50 fc0dd80d USBPORT!USBPORT_FlushDoneTransferList+0x281
> > fc8e3f80 fc1092b8 USBPORT!USBPORT_DpcWorker+0x4d3
> > fc8e3fb8 fc1099a8 USBPORT!USBPORT_IsrDpcWorker+0x7bc
> > fc8e3fdc 804dd55e USBPORT!USBPORT_IsrDpc+0x266
> > fc8e3ff4 804dd0eb nt!KiRetireDpcList+0x48
> >
> >
> > Does anybody have an idea?
> >
> > Best regards,
> > Kurt
Mail Powered by BizAdigm™ - http://www.bizadigm.net/growth4u
You are currently subscribed to ntdev as:
xxxxx@stratus.com To unsubscribe send a blank email to
%%email.unsub%%