[NTOSKRNL]
authorPierre Schweitzer <pierre@reactos.org>
Thu, 7 Oct 2010 20:20:10 +0000 (20:20 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Thu, 7 Oct 2010 20:20:10 +0000 (20:20 +0000)
On boot, while loading drivers, make starting Loader Block available to the whole kernel to let drivers calling on-boot functions that may need it.
One of them will be implemented later.

svn path=/trunk/; revision=49044

reactos/ntoskrnl/io/iomgr/iomgr.c

index e0c6ef9..38e72ec 100644 (file)
@@ -82,6 +82,8 @@ GENERAL_LOOKASIDE IoSmallIrpLookaside;
 GENERAL_LOOKASIDE IopMdlLookasideList;
 extern GENERAL_LOOKASIDE IoCompletionPacketLookaside;
 
+PLOADER_PARAMETER_BLOCK IopLoaderBlock;
+
 #if defined (ALLOC_PRAGMA)
 #pragma alloc_text(INIT, IoInitSystem)
 #endif
@@ -493,6 +495,9 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     /* Initialize HAL Root Bus Driver */
     HalInitPnpDriver();
 
+    /* Make loader block available for the whole kernel */
+    IopLoaderBlock = LoaderBlock;
+
     /* Load boot start drivers */
     IopInitializeBootDrivers();
 
@@ -506,6 +511,9 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
         IopStartRamdisk(LoaderBlock);
     }
 
+    /* No one should need loader block any longer */
+    IopLoaderBlock = NULL;
+
     /* Create ARC names for boot devices */
     if (!NT_SUCCESS(IopCreateArcNames(LoaderBlock))) return FALSE;