[NTOSKRNL] Add a raw implementation of !irpfind in kdbg
[reactos.git] / ntoskrnl / ps / psmgr.c
index 3536db7..317861c 100644 (file)
@@ -13,7 +13,6 @@
 #include <debug.h>
 
 extern ULONG ExpInitializationPhase;
-extern BOOLEAN SysThreadCreated;
 
 PVOID KeUserPopEntrySListEnd;
 PVOID KeUserPopEntrySListFault;
@@ -44,13 +43,13 @@ PVOID PspSystemDllSection;
 PVOID PspSystemDllEntryPoint;
 
 UNICODE_STRING PsNtDllPathName =
-    RTL_CONSTANT_STRING(L"\\SystemRoot\\system32\\ntdll.dll");
+    RTL_CONSTANT_STRING(L"\\SystemRoot\\System32\\ntdll.dll");
 
 PHANDLE_TABLE PspCidTable;
 
 PEPROCESS PsInitialSystemProcess = NULL;
 PEPROCESS PsIdleProcess = NULL;
-HANDLE PspInitialSystemProcessHandle;
+HANDLE PspInitialSystemProcessHandle = NULL;
 
 ULONG PsMinimumWorkingSet, PsMaximumWorkingSet;
 struct
@@ -63,9 +62,9 @@ BOOLEAN PspDoingGiveBacks;
 
 /* PRIVATE FUNCTIONS *********************************************************/
 
+INIT_FUNCTION
 USHORT
 NTAPI
-INIT_FUNCTION
 NameToOrdinal(IN PCHAR Name,
               IN PVOID DllBase,
               IN ULONG NumberOfNames,
@@ -106,9 +105,9 @@ NameToOrdinal(IN PCHAR Name,
     return NameToOrdinal(Name, DllBase, NumberOfNames, NameTable, OrdinalTable);
 }
 
+INIT_FUNCTION
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 LookupEntryPoint(IN PVOID DllBase,
                  IN PCHAR Name,
                  OUT PVOID *EntryPoint)
@@ -158,9 +157,9 @@ LookupEntryPoint(IN PVOID DllBase,
     return STATUS_SUCCESS;
 }
 
+INIT_FUNCTION
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 PspLookupSystemDllEntryPoint(IN PCHAR Name,
                              IN PVOID *EntryPoint)
 {
@@ -168,9 +167,9 @@ PspLookupSystemDllEntryPoint(IN PCHAR Name,
     return LookupEntryPoint(PspSystemDllBase, Name, EntryPoint);
 }
 
+INIT_FUNCTION
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 PspLookupKernelUserEntryPoints(VOID)
 {
     NTSTATUS Status;
@@ -243,7 +242,6 @@ PspLookupKernelUserEntryPoints(VOID)
 
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 PspMapSystemDll(IN PEPROCESS Process,
                 IN PVOID *DllBase,
                 IN BOOLEAN UseLargePages)
@@ -252,7 +250,7 @@ PspMapSystemDll(IN PEPROCESS Process,
     LARGE_INTEGER Offset = {{0, 0}};
     SIZE_T ViewSize = 0;
     PVOID ImageBase = 0;
-    
+
     /* Map the System DLL */
     Status = MmMapViewOfSection(PspSystemDllSection,
                                 Process,
@@ -269,15 +267,15 @@ PspMapSystemDll(IN PEPROCESS Process,
         /* Normalize status code */
         Status = STATUS_CONFLICTING_ADDRESSES;
     }
-    
+
     /* Write the image base and return status */
     if (DllBase) *DllBase = ImageBase;
     return Status;
 }
 
+INIT_FUNCTION
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 PsLocateSystemDll(VOID)
 {
     OBJECT_ATTRIBUTES ObjectAttributes;
@@ -361,9 +359,9 @@ PsLocateSystemDll(VOID)
     return Status;
 }
 
+INIT_FUNCTION
 NTSTATUS
 NTAPI
-INIT_FUNCTION
 PspInitializeSystemDll(VOID)
 {
     NTSTATUS Status;
@@ -394,19 +392,19 @@ PspInitializeSystemDll(VOID)
     return Status;
 }
 
+INIT_FUNCTION
 BOOLEAN
 NTAPI
-INIT_FUNCTION
-PspInitPhase1()
+PspInitPhase1(VOID)
 {
     /* Initialize the System DLL and return status of operation */
     if (!NT_SUCCESS(PspInitializeSystemDll())) return FALSE;
     return TRUE;
 }
 
+INIT_FUNCTION
 BOOLEAN
 NTAPI
-INIT_FUNCTION
 PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
 {
     NTSTATUS Status;
@@ -617,15 +615,14 @@ PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
                               (PVOID*)&SysThread,
                               NULL);
     ObCloseHandle(SysThreadHandle, KernelMode);
-    SysThreadCreated = TRUE;
 
     /* Return success */
     return TRUE;
 }
 
+INIT_FUNCTION
 BOOLEAN
 NTAPI
-INIT_FUNCTION
 PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
 {
     /* Check the initialization phase */
@@ -660,38 +657,24 @@ PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
  */
 BOOLEAN
 NTAPI
-PsGetVersion(IN PULONG MajorVersion OPTIONAL,
-             IN PULONG MinorVersion OPTIONAL,
-             IN PULONG BuildNumber OPTIONAL,
-             IN PUNICODE_STRING CSDVersion OPTIONAL)
+PsGetVersion(OUT PULONG MajorVersion OPTIONAL,
+             OUT PULONG MinorVersion OPTIONAL,
+             OUT PULONG BuildNumber  OPTIONAL,
+             OUT PUNICODE_STRING CSDVersion OPTIONAL)
 {
     if (MajorVersion) *MajorVersion = NtMajorVersion;
     if (MinorVersion) *MinorVersion = NtMinorVersion;
-    if (BuildNumber) *BuildNumber = NtBuildNumber;
+    if (BuildNumber ) *BuildNumber  = NtBuildNumber & 0x3FFF;
 
     if (CSDVersion)
     {
-        CSDVersion->Length = 0;
-        CSDVersion->MaximumLength = 0;
-        CSDVersion->Buffer = NULL;
-#if 0
         CSDVersion->Length = CmCSDVersionString.Length;
-        CSDVersion->MaximumLength = CmCSDVersionString.Maximum;
+        CSDVersion->MaximumLength = CmCSDVersionString.MaximumLength;
         CSDVersion->Buffer = CmCSDVersionString.Buffer;
-#endif
     }
 
-    /* Check the High word */
+    /* Return TRUE if this is a Checked Build */
     return (NtBuildNumber >> 28) == 0xC;
 }
 
-NTSTATUS
-NTAPI
-NtApphelpCacheControl(IN APPHELPCACHESERVICECLASS Service,
-                      IN PVOID ServiceData)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
 /* EOF */