PsProcessType->MaxObjects = ULONG_MAX;
PsProcessType->MaxHandles = ULONG_MAX;
PsProcessType->PagedPoolCharge = 0;
- PsProcessType->NonpagedPoolCharge = sizeof(EPROCESS);
+ PsProcessType->NonpagedPoolCharge = sizeof(EPROCESS)
+#ifdef LIBCAPTIVE
+ /* Need to present 0-terminated string "System"
+ * from KPROCESS up to PAGE_SIZE offset
+ * for ext2fsd.sys V0.10A debug.c/Ext2GetProcessNameOffset()
+ */
+ +strlen("System")+1/* 0-terminator */;
+#endif /* LIBCAPTIVE */
+ ;
PsProcessType->Mapping = &PiProcessMapping;
PsProcessType->Dump = NULL;
PsProcessType->Open = NULL;
return;
}
+#ifdef LIBCAPTIVE
+ /* Need to present 0-terminated string "System"
+ * from KPROCESS up to PAGE_SIZE offset
+ * for ext2fsd.sys V0.10A debug.c/Ext2GetProcessNameOffset()
+ */
+ strcpy(((char *)PsInitialSystemProcess) +strlen("System")+1/* 0-terminator */,"System");
+#endif /* LIBCAPTIVE */
+
/* System threads may run on any processor. */
PsInitialSystemProcess->Pcb.Affinity = 0xFFFFFFFF;
PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIO_NORMAL;
KeReleaseSpinLock(&PsProcessListLock, oldIrql);
/* KDB hook */
- KDB_DELETEPROCESS_HOOK(Process->Peb);
+ KDB_DELETEPROCESS_HOOK(Process);
ObDereferenceObject(Process->Token);
+ ObDeleteHandleTable(Process);
(VOID)MmReleaseMmInfo(Process);
- ObDeleteHandleTable(Process);
}
#endif /* LIBCAPTIVE */
}
-#ifndef LIBCAPTIVE
-
PEPROCESS STDCALL
IoGetCurrentProcess(VOID)
{
return(PsGetCurrentProcess());
}
+#ifndef LIBCAPTIVE
+
NTSTATUS STDCALL
PsCreateSystemProcess(PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
Message.Header.MessageSize = sizeof(LPC_DBG_MESSAGE);
Message.Header.DataSize = sizeof(LPC_DBG_MESSAGE) -
- sizeof(LPC_MESSAGE_HEADER);
+ sizeof(LPC_MESSAGE);
Message.Type = DBG_EVENT_CREATE_PROCESS;
Message.Data.CreateProcess.FileHandle = FileHandle;
Message.Data.CreateProcess.Base = ImageBase;