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 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
11,972 questions
Windows
Windows
A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.
5,719 questions
Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,659 questions
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.