Coup de gueule du jour : Utilisation de DirectX dans un service

5. janvier 2010

Dans le cadre de Nova Server (oui cette superbe technologie de la mort avec des vrais morceaux de code qui poutre à l’intérieur que vous pourrez découvrir ici), j’ai été amené à essayer de faire tourner Nova dans un service windows.

Et là c’est le drame. Il est juste IMPOSSIBLE de faire tourner DirectX (ou OpenGL) dans un service Windows depuis Windows Server 2008 et Vista. En effet, pour la petite histoire, ces systèmes font tourner les services dans une session appelée session 0. Cette session posséde la charmante limitation de ne pas permettre l’accès au desktop et donc à l’accélération graphique.

Ce qui me tue c’est qu’avant on pouvait. Mais apparemment il y a un bucheron dans l’équipe qui a conçu la sécurité des nouveaux OS. Le jour ou il a réfléchi à la sécurité des sessions, il devait être constipé parce que bloquer l’accès au desktop, je ne suis pas contre mais pourquoi à DirectX? Il croit que je vais détourner un avion avec?

C’est fou quand même parce que pour le coup le déport des rendus sur des serveurs c’est la foire à la saucisse avec une ouverture de session manuelle et tout le package “je code comme un veau”.

Donc, bam, carton rouge!

Divers, 3D, Windows