Originariamente inviato da Freax
che non mi risulta sia ancora un header del C ( anzi c'è pure il copyright Microsoft su quel file ), linguaggio per il quale il nostro amico chiede aiuto, o è Visual C++ o è C, mettiamoci d'accordo.
È C con le librerie di Windows (roba del Platform SDK), come è chiaro dai tipi e dalle funzioni utilizzate (e dal fatto che vuole creare un servizio, oggetto che il C standard ovviamente non menziona).

Comunque... dopo aver sistemato i parametri (come specificato correttamente da XAlbeX), inserisci dopo ciascuna chiamata una GetLastError per verificare esattamente quale codice di errore ottieni.