56 static UINT BaseGetTempFileUnique = 0;
60 GetTempFile->
UniqueID = (++BaseGetTempFileUnique & 0xFFFF);
103 DPRINT1(
"Failed to duplicate process handle: %lx\n",
Status);
131 DPRINT1(
"Failed to get VDM powers\n");
143 if ((
Flags & 2) == 0)
160 DPRINT1(
"Thread already dead\n");
171 DPRINT1(
"Failed to create process/thread structures: %lx\n",
Status);
179 Process->ClientId.UniqueThread,
189 if (CreateProcessRequest->
VdmTask != 0)
225 DPRINT1(
"Server Thread TID: [%lx.%lx]\n",
BOOL(NTAPI * BASE_PROCESS_CREATE_NOTIFY_ROUTINE)(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
struct _BASE_API_MESSAGE * PBASE_API_MESSAGE
NTSTATUS NTAPI CsrUnlockProcess(IN PCSR_PROCESS CsrProcess)
#define CsrGetClientThread()
NTSTATUS NTAPI CsrDestroyProcess(IN PCLIENT_ID Cid, IN NTSTATUS ExitStatus)
NTSTATUS NTAPI CsrCreateThread(IN PCSR_PROCESS CsrProcess, IN HANDLE hThread, IN PCLIENT_ID ClientId, IN BOOLEAN HaveClient)
@ CsrProcessCreateNewGroup
NTSTATUS NTAPI CsrLockProcessByClientId(IN HANDLE Pid, OUT PCSR_PROCESS *CsrProcess OPTIONAL)
NTSTATUS NTAPI CsrCreateProcess(IN HANDLE hProcess, IN HANDLE hThread, IN PCLIENT_ID ClientId, IN PCSR_NT_SESSION NtSession, IN ULONG Flags, IN PCLIENT_ID DebugCid)
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
_In_ HANDLE ProcessHandle
#define NtCurrentProcess()
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTATUS NTAPI NtSetInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, IN PVOID ProcessInformation, IN ULONG ProcessInformationLength)
#define STATUS_THREAD_IS_TERMINATING
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
VOID NTAPI BaseSetProcessCreateNotify(IN BASE_PROCESS_CREATE_NOTIFY_ROUTINE ProcessCreateNotifyProc)
static BASE_PROCESS_CREATE_NOTIFY_ROUTINE UserNotifyProcessCreate
NTSTATUS BaseSrvGetConsoleRecord(HANDLE ConsoleHandle, PVDM_CONSOLE_RECORD *Record)
NTSTATUS GetConsoleRecordBySessionId(ULONG TaskId, PVDM_CONSOLE_RECORD *Record)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define CREATE_NEW_PROCESS_GROUP
_Must_inspect_result_ _In_ ULONG Flags
_Out_ PCLIENT_ID ClientId
#define DUPLICATE_SAME_ACCESS