O ile mi wiadomo RegisterServiceProcess jest przeznaczony dla Win9x i rzecz jasna efektów nie widac w NT. Można napisac usluge pod NT, bedzie "niewidoczna"(nie bedzie jej w liscie procesow) jezeli utworzymy ja jako jeden z watków procesu SERVICES.EXE:
CreateService(....,SERVICE_WIN32_SHARE_PROCESS,..);
Niestety trzeba praw admina :(.
Innym wyjsciem aby ukryc process jest przechwycic funnkcje API lub Native API służące do wyswietlenia listy procesów ( w user mode -Ring0 jest mnustwo sposobów - czyli za duzo roboty) . Rozsadne jest wiec przechwycic NtQuerySystemInformation, ale to jest już programowanie driverów a nie WinAPI :).