#define NDEBUG
#include <internal/debug.h>
-ULONG IopTraceLevel = IO_IRP_DEBUG;
+ULONG IopTraceLevel = 0; //IO_API_DEBUG | IO_FILE_DEBUG;
// should go into a proper header
VOID
extern LIST_ENTRY DriverReinitListHead;
extern LIST_ENTRY PnpNotifyListHead;
extern LIST_ENTRY FsChangeNotifyListHead;
-extern LIST_ENTRY IopLogListHead;
+extern LIST_ENTRY IopErrorLogListHead;
extern LIST_ENTRY IopTimerQueueHead;
extern KDPC IopTimerDpc;
extern KTIMER IopTimer;
IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
LARGE_INTEGER ExpireTime;
- PDEVICE_NODE DeviceNode;
- PDRIVER_OBJECT DriverObject;
- LDR_DATA_TABLE_ENTRY ModuleObject;
NTSTATUS Status;
CHAR Buffer[256];
ANSI_STRING NtBootPath, RootString;
InitializeListHead(&PnpNotifyListHead);
InitializeListHead(&ShutdownListHead);
InitializeListHead(&FsChangeNotifyListHead);
- InitializeListHead(&IopLogListHead);
+ InitializeListHead(&IopErrorLogListHead);
KeInitializeSpinLock(&CancelSpinLock);
KeInitializeSpinLock(&IoVpbLock);
KeInitializeSpinLock(&IoStatisticsLock);
/* Create Object Directories */
if (!IopCreateRootDirectories()) return FALSE;
- /*
- * Initialize PnP manager
- */
+ /* Initialize PnP manager */
PnpInit();
- PnpInit2();
-
- IoCreateDriverList();
-
- KeInitializeSpinLock (&IoStatisticsLock);
-
- /* Initialize raw filesystem driver */
-
- /* Use IopRootDeviceNode for now */
- Status = IopCreateDeviceNode(IopRootDeviceNode, NULL, &DeviceNode);
- if (!NT_SUCCESS(Status))
- {
- CPRINT("IopCreateDeviceNode() failed with status (%x)\n", Status);
- return FALSE;
- }
-
- ModuleObject.DllBase = NULL;
- ModuleObject.SizeOfImage = 0;
- ModuleObject.EntryPoint = RawFsDriverEntry;
-
- Status = IopInitializeDriverModule(DeviceNode,
- &ModuleObject,
- &DeviceNode->ServiceName,
- TRUE,
- &DriverObject);
- if (!NT_SUCCESS(Status))
- {
- IopFreeDeviceNode(DeviceNode);
- CPRINT("IopInitializeDriver() failed with status (%x)\n", Status);
- return FALSE;
- }
-
- Status = IopInitializeDevice(DeviceNode, DriverObject);
- if (!NT_SUCCESS(Status))
- {
- IopFreeDeviceNode(DeviceNode);
- CPRINT("IopInitializeDevice() failed with status (%x)\n", Status);
- return FALSE;
- }
-
- Status = IopStartDevice(DeviceNode);
- if (!NT_SUCCESS(Status))
- {
- IopFreeDeviceNode(DeviceNode);
- CPRINT("IopInitializeDevice() failed with status (%x)\n", Status);
- return FALSE;
- }
-
- /*
- * Initialize PnP root releations
- */
+ /* Initialize PnP root relations */
IoSynchronousInvalidateDeviceRelations(IopRootDeviceNode->
PhysicalDeviceObject,
BusRelations);
+ /* Create the group driver list */
+ IoCreateDriverList();
+
/* Load boot start drivers */
IopInitializeBootDrivers();