Created
December 14, 2014 21:17
-
-
Save swwwolf/28ed963a388acf676d07 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NTSTATUS | |
PspCreateThread(OUT PHANDLE ThreadHandle, | |
IN ACCESS_MASK DesiredAccess, | |
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, | |
IN HANDLE ProcessHandle, | |
IN PEPROCESS ProcessPointer, | |
OUT PCLIENT_ID ClientId OPTIONAL, | |
IN PCONTEXT ThreadContext OPTIONAL, | |
IN PINITIAL_TEB InitialTeb OPTIONAL, | |
IN BOOLEAN CreateSuspended, | |
IN PKSTART_ROUTINE StartRoutine OPTIONAL, | |
IN PVOID StartContext) { | |
// ... | |
if ( PspCreateThreadNotifyRoutineCount != 0 ) { | |
ULONG i; | |
PEX_CALLBACK_ROUTINE_BLOCK CallBack; | |
PCREATE_THREAD_NOTIFY_ROUTINE Rtn; | |
for ( i = 0; i < PSP_MAX_CREATE_THREAD_NOTIFY; i++ ) { | |
CallBack = ExReferenceCallBackBlock(&PspCreateThreadNotifyRoutine[i]); | |
if ( CallBack != NULL ) { | |
Rtn = (PCREATE_THREAD_NOTIFY_ROUTINE)ExGetCallBackBlockRoutine(CallBack); | |
Rtn(Thread->Cid.UniqueProcess, | |
Thread->Cid.UniqueThread, | |
TRUE); | |
ExDereferenceCallBackBlock(&PspCreateThreadNotifyRoutine[i], | |
CallBack); | |
} | |
} | |
} | |
// ... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment