a SetInformation(FILE_END_OF_FILE_INFORMATION) IRP lead to PagingIO?

I Roll a IRP(SetInformation,FILE_END_OF_FILE_INFORMATION) to next device.
I wait for completion by a event(classic way),then I found it will lead to
PaingWrite IRP.
Yes,of course it will do that.
But I want to avoid it,my means is that just SetInformationIRP,No
PagingWrite IRP.
I think I can get it by Asynchronous Call.Is right?Please,explain it,thank
you.

code with synchronous style:

NTSTATUS RollSetFileSize(
IN PDEVICE_OBJECT pDevObj,
IN PFILE_OBJECT FileObject,
IN ULONG nFileSize
)
{
NTSTATUS status;
FILE_END_OF_FILE_INFORMATION EndOfFile;
PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION) pDevObj->DeviceExtension;
PDEVICE_OBJECT pFsdDevObj=pDevExt-> NextDeviceObject;
EndOfFile.EndOfFile.QuadPart = nFileSize;
EndOfFile.EndOfFile.LowPart = nFileSize;
… //IoAllocateIRP and Setup it;
IoSetCompletionRoutine( irp,
FreeIrpAndWaitCompletion, //KeSetEvent
&event,
TRUE,
TRUE,
TRUE );

status = IoCallDriver( pFsdDevObj, irp );
if (STATUS_PENDING == status) {

KeWaitForSingleObject( &event,
Executive,
KernelMode,
TRUE,
0);
status = ioStatus.Status;
}
//////////////////////////////////////////
//It will lead to PagingWriteIRP before reach this;
//////////////////////////////////////////
return status;
}

I think the code with synchronous style should be:

NTSTATUS RollSetFileSizeAsyn(
IN PDEVICE_OBJECT pDevObj,
IN PFILE_OBJECT FileObject,
IN ULONG nFileSize
)
{

PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION) pDevObj->DeviceExtension;
PDEVICE_OBJECT pFsdDevObj=pDevExt-> NextDeviceObject;

… //IoAllocateIRP and Setup it;
IoSetCompletionRoutine( irp,
FreeIrpCompletion,
NULL,
TRUE,
TRUE,
TRUE );

status = IoCallDriver( pFsdDevObj, irp );
//////////////////////////////////////////////////
//I think …
//It will NOT lead to PagingWriteIRP before reach this,
//this irp perhaps return pending at this;
//or return SUCCESS when SetInformation don’t need PagingWrite;
//////////////////////////////////////////////////
return status;
}

Thanks for your advise:)