Hello All,
I have a virtual device developed using UMDF. In my UMDF driver, I have a default parallel queue and a manual queue. When I get the request in DeviceIOControl, I forward one particular request to manual queue. A thread is started waiting for an event to occur and retrieves the request from manual when event occurs and completes it. This scenario is working fine when I have one instance of virtual device running.
When there are two instances of virtual devices running, the second instance always show that there are no requests in the queue. When I queried for the queue state in the thread, the first instance show 0xb (WdfIoQueueDriverNoRequests | WdfIoQueueDispatchRequests | WdfIoQueueAcceptRequests). The thread in second instance of device show 0xf (WdfIoQueueDriverNoRequests | WdfIoQueueDispatchRequests | WdfIoQueueAcceptRequests | WdfIoQueueNoRequests).
I’m unable to debug where I’m going wrong. Is there a better way to detect the problem.
If I query for the queue state immediately after forwarding to manual, the queue state is 0xb in both instances. Its in the thread routine of second instance, the value is 0xf.
Thanks and Regards,
Madhukar