Why can’t I rotate the display with ChangeDisplaySettingsEx?

Raymond Chen

If you have one of those cool swively LCD displays (or if you decided to build your own), you naturally want to tell your video card to display rotated output, so you can take advantage of the portrait orientation. And naturally you would think that calling the ChangeDisplaySettingsEx and using the dmDisplayOrientation field of the DEVMODE structure would do the trick.

And then you would find that it doesn’t work.

Yet the annoying utility program (which gets shoveled onto your computer when you install the driver) can rotate the video output. How come they can do it, but ChangeDisplaySettingsEx can’t?

Because the video card vendor decided to do it in a nonstandard way so that you’re forced to use their annoying utility program.

I’m told that one of the requirements of the Windows Vista Display Driver Model is that video drivers which support rotation must do so via the standard rotation interface. No “secret backdoor hidden rotation functionality” allowed. So at least things are getting better.

Of course, this doesn’t help if you have a video card that doesn’t have WDDM drivers. To the rescue come the clever people at EnTech, who developed the iRotate utility which knows the secret backdoor way to convince these annoying video cards to do their rotation.