Introduction to 3D Game Programming with DirectX 9.0 ( Frank D. Luna )
Advanced 3D Game Programming with DirectX 9.0 ( Peter Walsh )
They are a couple of really good books to get you going in Directx 9.0. If you work through the books you build your own entire engine.
As for free engines…there’s lots.
Cipher, Ogre3D….can’t think of the names of any others…