From 819a0ed90a7c1a5dedff08aa3b3c5501dc58c632 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Thu, 25 Jan 2007 17:51:45 +0000 Subject: [PATCH] - Use WinXP style /SOS output when enabled. (TODO: Display banner/memory/cpu). - Make more init functions return TRUE/FALSE and bugcheck the system if they failed. - Add more progress bar update calls. - Merge MmInit2 and MmInit3 into MmInitSystem with different phase calls. - Clear KeLoaderBlock after drivers have been loaded. - Update kernel fun. - Update symbolic names of certain strings in ntoskrnl.mc. Use WINDOWS_NT... instead of REACTOS because these names are documented and should be kept for cross-code compatibility. svn path=/trunk/; revision=25629 --- reactos/base/system/autochk/autochk.c | 4 +- .../boot/freeldr/freeldr/reactos/reactos.c | 4 +- reactos/drivers/base/bootvid/vid_vgatext.c | 4 +- reactos/ntoskrnl/KrnlFun.c | 23 +++-- reactos/ntoskrnl/cc/cacheman.c | 5 +- reactos/ntoskrnl/ex/init.c | 93 +++++++++---------- reactos/ntoskrnl/fsrtl/fsrtlpc.c | 4 +- reactos/ntoskrnl/include/internal/cc.h | 2 +- reactos/ntoskrnl/include/internal/fsrtl.h | 2 +- reactos/ntoskrnl/include/internal/lpc.h | 4 +- reactos/ntoskrnl/include/internal/mm.h | 9 +- reactos/ntoskrnl/include/internal/ntoskrnl.h | 1 - reactos/ntoskrnl/io/iomgr/driver.c | 22 ++++- reactos/ntoskrnl/io/pnpmgr/pnpmgr.c | 2 +- reactos/ntoskrnl/lpc/port.c | 7 +- reactos/ntoskrnl/mm/mminit.c | 61 ++++++------ reactos/ntoskrnl/ntoskrnl.mc | 40 ++++---- reactos/subsystems/win32/csrss/csrss.c | 4 +- 18 files changed, 151 insertions(+), 140 deletions(-) diff --git a/reactos/base/system/autochk/autochk.c b/reactos/base/system/autochk/autochk.c index 0e0ab025c19..8b153d0e6ec 100644 --- a/reactos/base/system/autochk/autochk.c +++ b/reactos/base/system/autochk/autochk.c @@ -306,7 +306,7 @@ CheckVolume( } /* Call provider */ - PrintString(" Verifying volume %S\n", DrivePath); + //PrintString(" Verifying volume %S\n", DrivePath); RtlInitUnicodeString(&DrivePathU, DrivePath); Status = ChkdskFunc(&DrivePathU, TRUE, // FixErrors @@ -364,7 +364,7 @@ _main(int argc, CheckVolume(DrivePath); } } - PrintString(" Done\n\n"); + //PrintString(" Done\n\n"); return 0; } diff --git a/reactos/boot/freeldr/freeldr/reactos/reactos.c b/reactos/boot/freeldr/freeldr/reactos/reactos.c index 5c60d63ca06..eafd96dd86f 100644 --- a/reactos/boot/freeldr/freeldr/reactos/reactos.c +++ b/reactos/boot/freeldr/freeldr/reactos/reactos.c @@ -926,13 +926,13 @@ LoadAndBootReactOS(PCSTR OperatingSystemName) * Load boot drivers */ FrLdrLoadBootDrivers(szBootPath, 40); - UiUnInitialize("Booting ReactOS..."); + //UiUnInitialize("Booting ReactOS..."); /* * Now boot the kernel */ DiskStopFloppyMotor(); - MachVideoPrepareForReactOS(); + //MachVideoPrepareForReactOS(); FrLdrStartup(0x2badb002); } diff --git a/reactos/drivers/base/bootvid/vid_vgatext.c b/reactos/drivers/base/bootvid/vid_vgatext.c index 715e148a327..61db02c72ca 100644 --- a/reactos/drivers/base/bootvid/vid_vgatext.c +++ b/reactos/drivers/base/bootvid/vid_vgatext.c @@ -48,7 +48,7 @@ #define CRTC_CURLO 0x0f #define CHAR_ATTRIBUTE_BLACK 0x00 /* black on black */ -#define CHAR_ATTRIBUTE 0x1F /* grey on blue */ +#define CHAR_ATTRIBUTE 0x07 /* grey on blue */ /* GLOBALS *******************************************************************/ @@ -65,7 +65,7 @@ VidpVgaTextClearDisplay(VOID) ULONG i; for (i = 0; i < SizeX * SizeY; i++, ptr++) - *ptr = (0x1700 + ' '); + *ptr = (0x0000 + ' '); } static BOOLEAN NTAPI diff --git a/reactos/ntoskrnl/KrnlFun.c b/reactos/ntoskrnl/KrnlFun.c index 3288f8b742e..ceb6bf75fbd 100644 --- a/reactos/ntoskrnl/KrnlFun.c +++ b/reactos/ntoskrnl/KrnlFun.c @@ -12,27 +12,26 @@ // - Use APC and DPC Interrupt Dispatchers. // - CMOS Initialization and CMOS Spinlock. // -// Fstub: -// - Implement IoAssignDriveLetters using mount manager support. -// -// Kd: -// - Implement KD Kernel Debugging and WinDBG support. +// Global: +// - TODO: Complete the list of bufxies +// - Fix process reference count leak. +// - Fix atapi.sys loading one more time at each boot. +// - Fix LiveCD. // /////////////////////////////////////////////////////////////////////////////// // REACTOS GUIDANCE PLAN // ________________________________________________________________________________________________________ // / \ -// | OB, PS, LPC, DBGK, EX => "Code complete". No expected changes until 0.5.0 | | +// | OB, PS, LPC, DBGK, EX, INIT => "Code complete". No expected changes until 0.5.0 | | // | SE => Not looked at. Interaction with Ps/Io is minimal and currently hacked away. Preserve. |J| -// | INIT => Boot sequence still needs work in terms of interaction with Ke and CPU features. |A| -// | KD/KDBG => Laptop has special version of ROS without these components. Commit in branch. |N| -// | HAL => Needs APC/DPC/IRQL implementation fixed ASAP in terms of interaction with Ke. | | +// | KD/KDBG => Laptop has special version of ROS without these components. Commit in branch. |A| +// | HAL => Needs APC/DPC/IRQL implementation fixed ASAP in terms of interaction with Ke. |N| // | || || || || || || || || || || || || | | // | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |F| -// | KE => Enable new thread scheduler and ensure it works. |E| -// | KD => Implement KD64 6.0, compatible with WinDBG |B| -// | FSTUB => Needs IoAssignDriveLetters fixed ASAP but not critical to Ke/Ex. Interacts with Io. | | +// | BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES BUGFIXES |E| +// | KE => Enable new thread scheduler and ensure it works. |B| +// | KD => Implement KD64 6.0, compatible with WinDBG | | // | || || || || || || || || || || || || |M| // | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |A| // | CM => TOTAL REWRITE. |R| diff --git a/reactos/ntoskrnl/cc/cacheman.c b/reactos/ntoskrnl/cc/cacheman.c index 1be55694e4c..195027b82ea 100644 --- a/reactos/ntoskrnl/cc/cacheman.c +++ b/reactos/ntoskrnl/cc/cacheman.c @@ -16,11 +16,12 @@ /* FUNCTIONS *****************************************************************/ -VOID +BOOLEAN NTAPI CcInitializeCacheManager(VOID) { - CcInitView(); + CcInitView(); + return TRUE; } /* diff --git a/reactos/ntoskrnl/ex/init.c b/reactos/ntoskrnl/ex/init.c index 7412853c26b..ac0d8c453ae 100644 --- a/reactos/ntoskrnl/ex/init.c +++ b/reactos/ntoskrnl/ex/init.c @@ -314,42 +314,6 @@ ExpInitNls(IN PLOADER_PARAMETER_BLOCK LoaderBlock) ExpNlsTableBase = SectionBase; } -VOID -INIT_FUNCTION -ExpDisplayNotice(VOID) -{ - CHAR str[50]; - - if (ExpInTextModeSetup) - { - HalDisplayString( - "\n\n\n ReactOS " KERNEL_VERSION_STR " Setup \n"); - HalDisplayString( - " \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD"); - HalDisplayString( - "\xCD\xCD\n"); - return; - } - - HalDisplayString("Starting ReactOS "KERNEL_VERSION_STR" (Build " - KERNEL_VERSION_BUILD_STR")\n"); - HalDisplayString(RES_STR_LEGAL_COPYRIGHT); - HalDisplayString("\n\nReactOS is free software, covered by the GNU General " - "Public License, and you\n"); - HalDisplayString("are welcome to change it and/or distribute copies of it " - "under certain\n"); - HalDisplayString("conditions. There is absolutely no warranty for " - "ReactOS.\n\n"); - - /* Display number of Processors */ - sprintf(str, - "Found %x system processor(s). [%lu MB Memory]\n", - (int)KeNumberProcessors, - (MmFreeLdrMemHigher + 1088)/ 1024); - HalDisplayString(str); - -} - NTSTATUS NTAPI ExpLoadInitialProcess(IN OUT PRTL_USER_PROCESS_INFORMATION ProcessInformation) @@ -1083,6 +1047,8 @@ Phase1InitializationDiscard(PVOID Context) InitWinPEModeType |= (strstr(CommandLine, "INRAM")) ? 0x80000000 : 1; } + /* FIXME: Print product name, version, and build */ + /* Initialize Power Subsystem in Phase 0 */ if (!PoInitSystem(0, AcpiTableDetected)) KeBugCheck(INTERNAL_POWER_ERROR); @@ -1127,6 +1093,11 @@ Phase1InitializationDiscard(PVOID Context) /* Initialize all processors */ if (!HalAllProcessorsStarted()) KeBugCheck(HAL1_INITIALIZATION_FAILED); + /* FIXME: Print CPU and Memory */ + + /* Update the progress bar */ + InbvUpdateProgressBar(5); + /* Call OB initialization again */ if (!ObInit()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED); @@ -1158,54 +1129,78 @@ Phase1InitializationDiscard(PVOID Context) } /* Set up Region Maps, Sections and the Paging File */ - MmInit2(); + if (!MmInitSystem(1, LoaderBlock)) KeBugCheck(MEMORY1_INITIALIZATION_FAILED); /* Create NLS section */ ExpInitNls(KeLoaderBlock); /* Initialize Cache Views */ - CcInitializeCacheManager(); + if (!CcInitializeCacheManager()) KeBugCheck(CACHE_INITIALIZATION_FAILED); /* Initialize the Registry */ if (!CmInitSystem1()) KeBugCheck(CONFIG_INITIALIZATION_FAILED); + /* Update progress bar */ + InbvUpdateProgressBar(15); + /* Update timezone information */ ExRefreshTimeZoneInformation(&SystemBootTime); /* Initialize the File System Runtime Library */ - FsRtlInitSystem(); + if (!FsRtlInitSystem()) KeBugCheck(FILE_INITIALIZATION_FAILED); /* Report all resources used by HAL */ HalReportResourceUsage(); - /* Initialize LPC */ - LpcpInitSystem(); + /* Call the debugger DLL once we have KD64 6.0 support */ + //KdDebuggerInitialize1(LoaderBlock); - /* Enter the kernel debugger before starting up the boot drivers */ - if (KdDebuggerEnabled && KdpEarlyBreak) DbgBreakPoint(); + /* Setup PnP Manager in phase 1 */ + if (!PpInitSystem()) KeBugCheck(PP1_INITIALIZATION_FAILED); + + /* Update progress bar */ + InbvUpdateProgressBar(20); + + /* Initialize LPC */ + if (!LpcInitSystem()) KeBugCheck(LPC_INITIALIZATION_FAILED); /* Initialize the I/O Subsystem */ if (!IoInitSystem(KeLoaderBlock)) KeBugCheck(IO1_INITIALIZATION_FAILED); /* Unmap Low memory, and initialize the MPW and Balancer Thread */ - MmInit3(); -#if DBG - extern ULONG Guard; -#endif - ASSERT(Guard == 0xCACA1234); + MmInitSystem(2, LoaderBlock); + + /* Update progress bar */ + InbvUpdateProgressBar(80); /* Initialize VDM support */ KeI386VdmInitialize(); /* Initialize Power Subsystem in Phase 1*/ - PoInitSystem(1, AcpiTableDetected); + if (!PoInitSystem(1, AcpiTableDetected)) KeBugCheck(INTERNAL_POWER_ERROR); /* Initialize the Process Manager at Phase 1 */ if (!PsInitSystem(LoaderBlock)) KeBugCheck(PROCESS1_INITIALIZATION_FAILED); + /* Update progress bar */ + InbvUpdateProgressBar(85); + + /* Make sure nobody touches the loader block again */ + if (LoaderBlock == KeLoaderBlock) KeLoaderBlock = NULL; + LoaderBlock = Context = NULL; + + /* Update progress bar */ + InbvUpdateProgressBar(90); + /* Launch initial process */ Status = ExpLoadInitialProcess(ProcessInfo); + /* Update progress bar */ + InbvUpdateProgressBar(100); + + /* Allow strings to be displayed */ + InbvEnableDisplayString(TRUE); + /* Wait 5 seconds for it to initialize */ Timeout.QuadPart = Int32x32To64(5, -10000000); Status = ZwWaitForSingleObject(ProcessInfo->ProcessHandle, FALSE, &Timeout); diff --git a/reactos/ntoskrnl/fsrtl/fsrtlpc.c b/reactos/ntoskrnl/fsrtl/fsrtlpc.c index 3e5f6a44ba1..dd015b12137 100644 --- a/reactos/ntoskrnl/fsrtl/fsrtlpc.c +++ b/reactos/ntoskrnl/fsrtl/fsrtlpc.c @@ -153,7 +153,7 @@ PUCHAR FsRtlLegalAnsiCharacterArray = LegalAnsiCharacterArray; /* PRIVATE FUNCTIONS *********************************************************/ -VOID +BOOLEAN NTAPI FsRtlInitSystem(VOID) { @@ -179,6 +179,8 @@ FsRtlInitSystem(VOID) { ExInitializeResource(&FsRtlPagingIoResources[i]); } + + return TRUE; } /* PUBLIC FUNCTIONS **********************************************************/ diff --git a/reactos/ntoskrnl/include/internal/cc.h b/reactos/ntoskrnl/include/internal/cc.h index bdd0c14c464..34483d576e7 100644 --- a/reactos/ntoskrnl/include/internal/cc.h +++ b/reactos/ntoskrnl/include/internal/cc.h @@ -110,7 +110,7 @@ NTSTATUS NTAPI WriteCacheSegment(PCACHE_SEGMENT CacheSeg); -VOID +BOOLEAN NTAPI CcInitializeCacheManager(VOID); diff --git a/reactos/ntoskrnl/include/internal/fsrtl.h b/reactos/ntoskrnl/include/internal/fsrtl.h index 8b4da207f60..7997abd41c3 100644 --- a/reactos/ntoskrnl/include/internal/fsrtl.h +++ b/reactos/ntoskrnl/include/internal/fsrtl.h @@ -47,7 +47,7 @@ // // Initialization Routines // -VOID +BOOLEAN NTAPI FsRtlInitSystem( VOID diff --git a/reactos/ntoskrnl/include/internal/lpc.h b/reactos/ntoskrnl/include/internal/lpc.h index 6dc86d68147..ad945026067 100644 --- a/reactos/ntoskrnl/include/internal/lpc.h +++ b/reactos/ntoskrnl/include/internal/lpc.h @@ -117,9 +117,9 @@ LpcExitThread( // // Initialization functions // -NTSTATUS +BOOLEAN NTAPI -LpcpInitSystem( +LpcInitSystem( VOID ); diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index e63bdec36cf..7f2d2502063 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -550,13 +550,10 @@ MmInit1( ULONG MaxMemInMeg ); -VOID +BOOLEAN NTAPI -MmInit2(VOID); - -VOID -NTAPI -MmInit3(VOID); +MmInitSystem(IN ULONG Phase, + IN PLOADER_PARAMETER_BLOCK LoaderBlock); VOID NTAPI diff --git a/reactos/ntoskrnl/include/internal/ntoskrnl.h b/reactos/ntoskrnl/include/internal/ntoskrnl.h index a26fbf04445..a05ba07d342 100644 --- a/reactos/ntoskrnl/include/internal/ntoskrnl.h +++ b/reactos/ntoskrnl/include/internal/ntoskrnl.h @@ -66,7 +66,6 @@ typedef struct __DESCRIPTOR /* * Initalization functions (called once by main()) */ -VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress); BOOLEAN NTAPI ObInit(VOID); BOOLEAN NTAPI CmInitSystem1(VOID); VOID CmShutdownRegistry(VOID); diff --git a/reactos/ntoskrnl/io/iomgr/driver.c b/reactos/ntoskrnl/io/iomgr/driver.c index dfa34bf62fb..e959c055e85 100644 --- a/reactos/ntoskrnl/io/iomgr/driver.c +++ b/reactos/ntoskrnl/io/iomgr/driver.c @@ -280,14 +280,30 @@ IopDisplayLoadingMessage(PVOID ServiceName, BOOLEAN Unicode) { CHAR TextBuffer[256]; + PCHAR Extra = ".sys"; + if (ExpInTextModeSetup) return; - if (Unicode) + if (Unicode) { - sprintf(TextBuffer, "Loading %S...\n", (PWCHAR)ServiceName); + if (wcsstr(ServiceName, L".sys")) Extra = ""; + sprintf(TextBuffer, + "%s%s%s\\%S%s\n", + KeLoaderBlock->ArcBootDeviceName, + KeLoaderBlock->NtBootPathName, + "System32\\Drivers", + (PWCHAR)ServiceName, + Extra); } else { - sprintf(TextBuffer, "Loading %s...\n", (PCHAR)ServiceName); + if (strstr(ServiceName, ".sys")) Extra = ""; + sprintf(TextBuffer, + "%s%s%s\\%s%s\n", + KeLoaderBlock->ArcBootDeviceName, + KeLoaderBlock->NtBootPathName, + "System32\\Drivers", + (PCHAR)ServiceName, + Extra); } HalDisplayString(TextBuffer); } diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c index 2cd18320a18..ca310a12e72 100644 --- a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c +++ b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c @@ -3398,7 +3398,7 @@ PpInitSystem(VOID) case 1: /* Do Phase 1 */ - return FALSE; + return TRUE; //return PiInitPhase1(); default: diff --git a/reactos/ntoskrnl/lpc/port.c b/reactos/ntoskrnl/lpc/port.c index 0cba4902699..adea90729ab 100644 --- a/reactos/ntoskrnl/lpc/port.c +++ b/reactos/ntoskrnl/lpc/port.c @@ -31,10 +31,9 @@ static GENERIC_MAPPING LpcpPortMapping = /* PRIVATE FUNCTIONS *********************************************************/ -NTSTATUS -INIT_FUNCTION +BOOLEAN NTAPI -LpcpInitSystem(VOID) +LpcInitSystem(VOID) { OBJECT_TYPE_INITIALIZER ObjectTypeInitializer; UNICODE_STRING Name; @@ -70,7 +69,7 @@ LpcpInitSystem(VOID) 32); /* We're done */ - return STATUS_SUCCESS; + return TRUE; } /* PUBLIC FUNCTIONS **********************************************************/ diff --git a/reactos/ntoskrnl/mm/mminit.c b/reactos/ntoskrnl/mm/mminit.c index 6ceae129e4c..8607291de1b 100644 --- a/reactos/ntoskrnl/mm/mminit.c +++ b/reactos/ntoskrnl/mm/mminit.c @@ -453,44 +453,39 @@ MmInit1(ULONG_PTR FirstKrnlPhysAddr, BOOLEAN RmapReady, PageOpReady, SectionsReady, PagingReady; -VOID +BOOLEAN NTAPI -INIT_FUNCTION -MmInit2(VOID) +MmInitSystem(IN ULONG Phase, + IN PLOADER_PARAMETER_BLOCK LoaderBlock) { - MmInitializeRmapList(); - RmapReady = TRUE; - MmInitializePageOp(); - PageOpReady = TRUE; - MmInitSectionImplementation(); - SectionsReady = TRUE; - MmInitPagingFile(); - PagingReady = TRUE; -} + if (Phase == 1) + { + MmInitializeRmapList(); + RmapReady = TRUE; + MmInitializePageOp(); + PageOpReady = TRUE; + MmInitSectionImplementation(); + SectionsReady = TRUE; + MmInitPagingFile(); + PagingReady = TRUE; + } + else if (Phase == 2) + { + /* + * Unmap low memory + */ + MmCreatePhysicalMemorySection(); + MiInitBalancerThread(); -VOID -INIT_FUNCTION -NTAPI -MmInit3(VOID) -{ - /* - * Unmap low memory - */ -#ifdef CONFIG_SMP - /* In SMP mode we can unmap the low memory - if all processors are started. */ - MmDeletePageTable(NULL, 0); -#endif + /* + * Initialise the modified page writer. + */ + MmInitMpwThread(); - MmCreatePhysicalMemorySection(); - MiInitBalancerThread(); + /* FIXME: Read parameters from memory */ + } - /* - * Initialise the modified page writer. - */ - MmInitMpwThread(); - - /* FIXME: Read parameters from memory */ + return TRUE; } VOID static diff --git a/reactos/ntoskrnl/ntoskrnl.mc b/reactos/ntoskrnl/ntoskrnl.mc index 57b72a99004..589a2742cad 100644 --- a/reactos/ntoskrnl/ntoskrnl.mc +++ b/reactos/ntoskrnl/ntoskrnl.mc @@ -1089,6 +1089,14 @@ Language=English PP0_INITIALIZATION_FAILED . +MessageId=0x90 +Severity=Success +Facility=System +SymbolicName=PP1_INITIALIZATION_FAILED +Language=English +PP1_INITIALIZATION_FAILED +. + MessageId=0x94 Severity=Success Facility=System @@ -1300,42 +1308,42 @@ Language=English IMPERSONATING_WORKER_THREAD . -MessageId=0x9A +MessageId=0x7E Severity=Informational Facility=System -SymbolicName=REACTOS_BANNER +SymbolicName=WINDOWS_NT_BANNER Language=English -ReactOS Version %s (Build %s) +ReactOS (R) Version %hs (Build %u%hs) . -MessageId=0x9B +MessageId=0x87 Severity=Informational Facility=System -SymbolicName=REACTOS_SERVICE_PACK +SymbolicName=WINDOWS_NT_CSD_STRING Language=English Service Pack . -MessageId=0x9C +MessageId=0x88 Severity=Informational Facility=System -SymbolicName=REACTOS_INFO_STRING_UNI_PROCESSOR +SymbolicName=WINDOWS_NT_INFO_STRING Language=English %u System Processor [%u MB Memory] %Z . +MessageId=0x89 +Severity=Informational +Facility=System +SymbolicName=WINDOWS_NT_MP_STRING +Language=English +MulitProcessor Kernel +. + MessageId=0x9D Severity=Informational Facility=System -SymbolicName=REACTOS_MP_KERNEL -Language=English -MulitProcessor Kernel -. - -MessageId=0x9E -Severity=Informational -Facility=System -SymbolicName=REACTOS_INFO_STRING_MULTI_PROCESSOR +SymbolicName=WINDOWS_NT_INFO_STRING_PLURAL Language=English %u System Processors [%u MB Memory] %Z . diff --git a/reactos/subsystems/win32/csrss/csrss.c b/reactos/subsystems/win32/csrss/csrss.c index b5d73037c5f..82d84804f14 100644 --- a/reactos/subsystems/win32/csrss/csrss.c +++ b/reactos/subsystems/win32/csrss/csrss.c @@ -36,8 +36,8 @@ int _cdecl _main(int argc, { NTSTATUS Status = STATUS_SUCCESS; - PrintString("ReactOS Client/Server Run-Time (Build %s)\n", - KERNEL_VERSION_BUILD_STR); + //PrintString("ReactOS Client/Server Run-Time (Build %s)\n", + //KERNEL_VERSION_BUILD_STR); /*================================================================== * Initialize the Win32 environment subsystem server.