My application is showing following values for different performance counters.

I have two questions.
I thought # of Bytes in all Heaps represents .net memory usage in all heaps. If that's correct, that should be equal to heap sizes of Gen 0, 1, 2 and large object heap which is not the case here.
Reserve bytes represents the available memory that .net uses to fulfil next allocation requirements. In that case shouldn't reserved bytes always be greater than committed bytes which is not the case here.
Can someone please explain what am I misunderstanding here?