Test de l’exécution sur un contrôleur de domaine

le code suivant utilise la fonction VerifyVersionInfo pour déterminer si le processus appelant s’exécute sur un contrôleur de domaine Windows 2000 Server. Votre programme d’installation de service peut utiliser ce test avant d’installer un service sous le compte LocalSystem. Si le test indique que vous êtes en cours d’exécution sur un contrôleur de domaine, vous installez le service pour qu’il s’exécute sous un compte d’utilisateur ou affichez une boîte de dialogue qui vous avertit des dangers liés à l’exécution en tant que LocalSystem sur un contrôleur de domaine (ce qui signifie que le service disposerait alors d’un accès illimité à Active Directory Domain Services, un contexte de sécurité extrêmement puissant

BOOL Is_Win2000_DomainController () 
{
   OSVERSIONINFOEX osvi;
   DWORDLONG dwlConditionMask = 0;
 
   // Initialize the OSVERSIONINFOEX structure.
   ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
   osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
   osvi.dwMajorVersion = 5;
   osvi.wProductType = VER_NT_DOMAIN_CONTROLLER;
 
   // Initialize the condition mask.
   VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, 
      VER_GREATER_EQUAL );
   VER_SET_CONDITION( dwlConditionMask, VER_PRODUCT_TYPE, 
      VER_EQUAL );
 
   // Perform the test.
   return VerifyVersionInfo(
      &osvi, 
      VER_MAJORVERSION | VER_PRODUCT_TYPE,
      dwlConditionMask);
}