Windows hang when loading a bluetooth profile driver

I am writing a blue tooth profile driver. In response to IRP_MN_START_DEVICE , I first pass the IRP down to the bthenum driver , after that , I build the SDP record and issue the IOCTL_BTH_SDP_SUBMIT_RECORD to bthenum and from then on Windows seems hang , and finally the debugger tell me there is a dead lock. I have no experience to deal with this situation . How does this happen ? Is it the right place to submit a SDP record in IRP_MN_START_DEVICE ? Many thanks!