Asynchronous IOP processing

Dear All!

In my port driver (for Win9x) I’d like to process IOPs asynchronously and do the following: create a processing thread (_VWIN32_CreateRing0Thread), then when a IOP comes to my driver I check whether the request synchronous (IORF_SYNC_COMMAND) and if it doesn’t I link it to the list (allocate memory for the list entry with IFSMgr_GetHeap).
Now the questions:

  1. Can I process requests in the separate thread under Win9x?
  2. Can I use IFSMgr_GetHeap to allocate list entry?
  3. How do I tell the IOS that the request is pending?

I ask these questions because sometimes I encounter the following problem: when a read requests comes I use IFSMgr_Ring0_FileIO to read a file and IFSMgr_Ring0_FileIO sometimes (very seldom) hangs. I wonder why, 'cause process the read request asynchronously and I call IFSMgr_Ring0_FileIO from the separate thread.

Thanx a lot for any suggestions.

Max Lyadvinsky

P.S. And yet: how do I set thread priority in a VxD?