Making a new IRP and Copy IRP Parameters

> status = IoCallDriver(DeviceObject, PIrpLocal);

if (status == STATUS_PENDING){
IoMarkIrpPending (IoManagerIrp);
return STATUS_PENDING;
}

return status;

No, just do “return IoCallDriver(…)”.

Also - if the completion routine returns STATUS_SUCCESS, it must do the
following before return:

if( Irp->PendingReturned )
IoMarkIrpPending(Irp);

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com