If fastio write/read return FALSE, what IRP will be brought firstly ?

When writing/reading a file,if fastio write/read return FALSE, what IRP will
be brought ?
In my tests, I find that many programs will call fastio write when they will
write data into a file, after this, they will bring a IRP with IRP_PAGING_IO
or IRP_SYNCHRONOUS_PAGING_IO flag, then write data into the file really.

Now , I force fastio write returns FALSE, then I find that no IRPs with
IRP_PAGING_IO or IRP_SYNCHRONOUS_PAGING_IO flag are brought. Alternately,
some IRPs whitout IRP_PAGING_IO or IRP_SYNCHRONOUS_PAGING_IO flag are
brouht, after these IRPs, IRPs with IRP_PAGING_IO or
IRP_SYNCHRONOUS_PAGING_IO flag are brought. Why ?

I have know that IRPs with IRP_PAGING_IO or IRP_SYNCHRONOUS_PAGING_IO will
write data into the file really.
I want to know what IRP will be brought firstly when fastio write/read
return FALSE? It may be IRPs with IRP_PAGING_IO or IRP_SYNCHRONOUS_PAGING_IO
?
Another question, If fastio write/read return FALSE , an IRP with
IRP_NOCACHE flag can be brought ?

In my all tests, once fastio write/read return FALSE, an IRP whitout
IRP_PAGING_IO or IRP_SYNCHRONOUS_PAGING_IO flag are brouht firstly, and then
an
PAGEIO IRP is just brought.