ULONG BuildIo;
ULONG StartIo;
ULONG Completed;
+ ULONG Failed;
};
static FORCEINLINE PVOID
PowerDeviceStateName(Adapter->DevicePower));
XENBUS_DEBUG(Printf,
&Adapter->DebugInterface,
- "ADAPTER: Srbs : %u built, %u started, %u completed\n",
+ "ADAPTER: Srbs : %u built, %u started, %u completed, %u failed\n",
Adapter->BuildIo,
Adapter->StartIo,
- Adapter->Completed);
+ Adapter->Completed,
+ Adapter->Failed);
}
static NTSTATUS
Adapter->BuildIo = 0;
Adapter->StartIo = 0;
Adapter->Completed = 0;
+ Adapter->Failed = 0;
ASSERT(IsZeroMemory(Adapter, sizeof(XENVBD_ADAPTER)));
Trace("<===== (%d)\n", KeGetCurrentIrql());
ASSERT3U(Srb->SrbStatus, !=, SRB_STATUS_PENDING);
- InterlockedIncrement((PLONG)&Adapter->Completed);
+ if (Srb->SrbStatus == SRB_STATUS_SUCCESS)
+ InterlockedIncrement((PLONG)&Adapter->Completed);
+ else
+ InterlockedIncrement((PLONG)&Adapter->Failed);
StorPortNotification(RequestComplete, Adapter, Srb);
}
BOOLEAN WasQueued = FALSE;
PXENVBD_TARGET Target;
+ InterlockedIncrement((PLONG)&Adapter->StartIo);
Target = AdapterGetTarget(Adapter, Srb->TargetId);
if (Target == NULL) {
Srb->SrbStatus = SRB_STATUS_NO_DEVICE;