Mirror Driver - which graphical functions I need ti use to make sure ..

Hi.
I’m writing Mirror Display Driver and I have been developing and testing it for a long time.
And I can’t understand exactly, what graphical functions I need to hook and use.
I need to make sure that no dirty regions will be lost.
I see that Radmin driver for example using just four functions
EngTextOut
EngCopyBits
EngBitBlt
EngStrokePath
But when I tried to implement them I found that I lose some dirty regions sometimes.
Could anyone can give the list of graphical functions which I need to hook?