read IRP was mask pending and doesn't pass to driver by framwork

frank guo 0 Reputation points
2023-07-10T08:02:06.5166667+00:00

I write a KMDF usb serial driver with WDF whitch version is windowsKernelModeDriver10.0.

When i send "at" to my UE through my usb serial driver, the cmd was sent to my UE, and UE replay "ok" to my usb serial driver, but the application can't receive the response "ok" from driver.

I check the reason and found that the application send read IRP to WDF framework, but whitch diden't pass the read irp to my usb serial driver, and mask the read irp with STATUS_PENDING.

I don't know why? can someone help me to explain this and tell how to resolve this problem.

3ks.

User's image

Windows for business | Windows Client for IT Pros | Devices and deployment | Other
Windows for business | Windows Client for IT Pros | User experience | Other
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. frank guo 0 Reputation points
    2023-07-10T12:52:05.12+00:00

    I resolved this problem, but don't know why.

    when creates read queue, calls WdfDeviceConfigureRequestDispatching to set the read irp sent to read queue other then the defult queue.

    Don't call WdfDeviceConfigureRequestDispatching after create the read queue, using the default queue to receive the read irp from framework, then the read irp haven't be masked pending, and send to default queue called the EvtIoRead directlt.

    But why calling WdfDeviceConfigureRequestDispatching will making the read irp masked pending?

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.