Gunnar Dalsnes wrote:
hbirr@svn.reactos.com wrote:
- Use IoBuildAsynchronousFsdRequest instead
IoBuildSynchronousFsdRequest in NtRead/WriteFile. - Guard the calls to IoBuildAsynchronousFsdRequest with an exception frame.
Modified: trunk/reactos/ntoskrnl/io/rw.c
I dont understand these changes... Why did you change from sync. to asycn. version, and whats the point with try/except around IoBuildAsynchronousFsdRequest???
I've guarded the calls to IoBuildAsynchronousFsdRequest because IoBuildAsynchronousFsdRequest calls MmProbeAndLockPages which can raise an exception if the buffer isn't valid.
IoBuildSynchronousFsdRequest does always queue the irps to the threads cancel/cleanup list. This isn't correct for asynchronous requests.
- Hartmut