views:

11

answers:

0

Thread1
SetFileInformationByHandle(fileHandle, ...);

Thread2
SetFileInformationByHandle(sameFileHandleWithThread1, ...);

Thread1's function has been called first. and Thread2's function has been called in another thread.

if the function's duration is 10 seconds -the device driver sleeps in the dispatch routine, will the second function's IRP be waited to be processed for 10 seconds?

In other words, if we do -multiple and concurrent- synchronous I/Os, will the device driver process the IRPs in step by step?
Who has the responsibility of the synchronization? Is it their device driver? or I/O manager?