Turn Monitor on/off in Vista/7

I need to turn off the monitor while the machine still receives input via mouse or keyboard.
While turning off the monitor would pretty easy via the WinAPI call
Make sure that it stays off while receiving input (mouse movement)is not.
Thats why I need my own driver.

My approach was to write a monitor function driver (which replaces monitor.sys on Vista/7) or an upper filter driver on top where I can trigger
the monitor on/off via a call with

retval = PoRequestPowerIrp( pDevExt->Pdo,
where PState is PowerDeviceD3 or PowerDeviceD0.

This call is triggered in the DispatchWrite function which gets called when I write to the device form a user mode app.
While the (function)driver works as expected with XP, with Vista/7 it doesn’t(function and filter).
Vista/7 behavior:
Good: PowerDeviceD3 works -> monitor turns off.
Bad: PowerDeviceD0 won’t work afterwards anymore - the monitor stays off and after a few seconds the desktop on the second monitor will freeze. But I can still move the mouse then and even switch to the Logon Screen (Ctrl+Alt+Del). Switching back will result in a black screen. Even Num Lock still reacts a reboot is neccessarry anyway.

As this is my first driver I appreciate any help.