sys: FspIopCompleteIrpEx:

- only update statistics if we actually have a reference to the DeviceObject
This commit is contained in:
Bill Zissimopoulos 2016-12-30 15:36:06 -08:00
parent c9485ff214
commit 8f25dd6cab

View File

@ -288,18 +288,22 @@ VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference)
*/ */
if (IRP_MJ_CREATE == IrpSp->MajorFunction) if (IRP_MJ_CREATE == IrpSp->MajorFunction)
{ {
FSP_DEVICE_EXTENSION *DeviceExtension = FspDeviceExtension(DeviceObject); /* only update statistics if we actually have a reference to the DeviceObject */
if (DeviceDereference)
if (FspFsvolDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)
{ {
FSP_STATISTICS *Statistics = FspStatistics( FSP_DEVICE_EXTENSION *DeviceExtension = FspDeviceExtension(DeviceObject);
((FSP_FSVOL_DEVICE_EXTENSION *)DeviceExtension)->Statistics);
FspStatisticsInc(Statistics, Specific.CreateHits); if (FspFsvolDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)
if (STATUS_SUCCESS == Result) {
FspStatisticsInc(Statistics, Specific.SuccessfulCreates); FSP_STATISTICS *Statistics = FspStatistics(
else ((FSP_FSVOL_DEVICE_EXTENSION *)DeviceExtension)->Statistics);
FspStatisticsInc(Statistics, Specific.FailedCreates);
FspStatisticsInc(Statistics, Specific.CreateHits);
if (STATUS_SUCCESS == Result)
FspStatisticsInc(Statistics, Specific.SuccessfulCreates);
else
FspStatisticsInc(Statistics, Specific.FailedCreates);
}
} }
} }
else else