Hello,
I have a client usb driver which is built from bulk usb DDK sample .
When some data is being sent to the driver ( through an ioctl ) , the
Handle count of the user mode application talking to the driver keeps
rising ( it keeps rising as long as we are sending data , for the
amount of time no data is being sent , handle count remains stable )
The cause of the handle leakage has been isolated to be related to the
driver .
The GDI handles and User handles of the process however remain stable
.
I have seen through the code of the driver and there seems to be no
explicit handle leakage .
Any ideas on how to track this thing down?
what could it most possibly be?
I am opening the handle to the driver asynchronously from the user
mode process , and all ioctls are passed an overlap structure , some
of them i want to wait on so i also pass
an event handle in the overlap str. and wait on them , for other
ioctls i dont .
I do not maintain any IRP queueing inside the driver however , since
there is no particular type of IRP that i would possibly need more
than once unprocessed inside the driver in a row.
as a related question , the usb client driver's DLLs is not directly
loaded into the
address space of the user mode process talking to it ,and some Windows
component ( IO / Pnp manager etc load the dll ) so why is it that
the handle count is shown to be increasing in the task manager for
user mode process for something that is apparently happening inside
the driver?
thanks and regards
Taha