Test dell'esecuzione in un controller di dominio
Il codice seguente usa la funzione VerifyVersionInfo per determinare se il processo chiamante è in esecuzione in un controller di dominio Windows 2000 Server. Il programma di installazione del servizio potrebbe usare questo test prima di installare un servizio nell'account LocalSystem. Se il test indica che si è in esecuzione in un controller di dominio, installare il servizio per l'esecuzione con un account utente o visualizzare una finestra di dialogo che segnala i pericoli dell'esecuzione come LocalSystem in un controller di dominio (ovvero che il servizio avrà accesso illimitato a Dominio di Active Directory Services, un contesto di sicurezza estremamente potente che può danneggiare l'intera rete).
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);
}