[ros-dev] Re: [ros-diffs] [hbirr] 14421: - Use IoBuildAsynchronousFsdRequest instead IoBuildSynchronousFsdRequest in NtRead/WriteFile.

Gunnar Dalsnes hardon at online.no
Tue Apr 5 02:35:04 CEST 2005


I googled and found some stuff:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q326315

//
// If the target device object is set up do direct i/o (DO_DIRECT_IO), then
// IoBuildAsynchronousFsdRequest creates an MDL to describe the buffer
// and locks the pages.


We also probe and lock, so it seems ros IoBuildAsynchronousFsdRequest is 
correct at this point. But the docs says nothing about 
IoBuildAsynchronousFsdRequest throwing an exception, and i have never 
seen any code guarding a call to IoBuildAsynchronousFsdRequest either...

googled some more:

http://drucifer.shackspace.com/bsod.txt

DRIVER_VERIFIER_IOMANAGER_VIOLATION (0xC9)
8. Call to IoBuildAsynchronousFsdRequest threw an exception
2 - the Device object
3 - the IRP major function
4 - the exception status

Hmm. So it seems IoBuildAsynchronousFsdRequest CAN throw and exception 
but is not allowed to do so, even thou it uses MmProbeAndLockPages! Imo, 
this can only mean that its not allowed to use 
IoBuildAsynchronousFsdRequest/IoBuildSynchronousFsdRequest with umode 
buffers! (MmProbeAndLockPages with kmode buffer will never fail)

Gunnar

Gunnar Dalsnes wrote:
> 
> 
> hbirr at 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???
> 
> Gunnar
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.com
> http://reactos.com:8080/mailman/listinfo/ros-dev
> 
> 
> 


More information about the Ros-dev mailing list