Hi Carroll,
+ if (ProcessHandle!=0) + localThreadHandle = CreateRemoteThread(ProcessHandle,0,0,StartRoutine,StartContext,0,&ThreadId); + else localThreadHandle = CreateThread(0,0,StartRoutine,StartContext,0,&ThreadId); + + if (localThreadHandle==0) return STATUS_SEVERITY_ERROR;
You should use NtCreateThread rather than CreateThread. It also returns a proper status, so you don't have to guess like you do here. --Juan