(b) Sounds to me like you’re doing a GDI based scroll of the window contents and you are expecting the non-visible fragments to magically appear in the window after your scroll. Fragments that are not visible (ie. Covered by another window or outside the bounds of the viewport/window) do not exist. GL doesn’t create them.
The answer to your problem is to ensure you update the frame buffer immediately after a scroll event.