sys: introduce private NTSTATUS codes FSP_STATUS_POST_IOQ* and ensure that Irp is not touched after STATUS_PENDING

This commit is contained in:
Bill Zissimopoulos
2016-01-17 14:12:05 -08:00
parent 9c7d9c5944
commit 0bedee7d5f
7 changed files with 63 additions and 41 deletions

View File

@ -73,17 +73,14 @@ static NTSTATUS FspFsvolCleanup(
Request->Req.Cleanup.UserContext2 = UserContext2;
Request->Req.Cleanup.Delete = DeletePending;
return FSP_STATUS_IOQ_POST_BEST_EFFORT;
/*
* Note that it is still possible for this request to not be delivered,
* if the volume device Ioq is stopped. But such failures are benign
* from our perspective, because they mean that the file system is going
* away and should correctly tear things down.
*/
if (FspIoqPostIrpBestEffort(FsvolDeviceExtension->Ioq, Irp, 0))
return STATUS_PENDING;
else
return STATUS_SUCCESS;
}
VOID FspFsvolCleanupComplete(