Forzando NVIDIA GPU programáticamente en computadoras portátiles Optimus

Estoy programando un juego de DirectX, y cuando lo ejecuto en una computadora portátil Optimus, se utiliza la GPU de Intel, lo que resulta en un rendimiento horrible. Si fuerzo la GPU NVIDIA usando el menú contextual o cambiando el nombre de mi ejecutable a bf3.exe o algún otro nombre famoso ejecutable del juego, el rendimiento es el esperado.
Obviamente, tampoco es una solución aceptable para cuando tengo que redistribuir mi juego, ¿así que hay una manera de forzar a la computadora portátil para que use la GPU NVIDIA?

Ya he intentado usar DirectX para enumerar adaptadores (IDirect3D9 :: GetAdapterCount, IDirect3D9 :: GetAdapterIdentifier) ​​y no funciona: solo se informa 1 GPU (la que está en uso).

Respuestas a la pregunta(2)

Su respuesta a la pregunta