Author: hpoussin Date: Wed Jul 4 18:13:30 2007 New Revision: 27386
URL: http://svn.reactos.org/svn/reactos?rev=27386&view=rev Log: Add a message in case of error when loading/initializing driver
Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c
Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/ntfunc.c?rev=27... ============================================================================== --- trunk/reactos/ntoskrnl/cm/ntfunc.c (original) +++ trunk/reactos/ntoskrnl/cm/ntfunc.c Wed Jul 4 18:13:30 2007 @@ -290,7 +290,7 @@ { if (L'\' == RemainingPath.Buffer[i]) { - DPRINT1("NtCreateKey() doesn't create trees! (found '\' in remaining path: "%wZ"!)\n", &RemainingPath); + DPRINT("NtCreateKey() doesn't create trees! (found '\' in remaining path: "%wZ"!)\n", &RemainingPath);
PostCreateKeyInfo.Object = NULL; PostCreateKeyInfo.Status = STATUS_OBJECT_NAME_NOT_FOUND;
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c... ============================================================================== --- trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c (original) +++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c Wed Jul 4 18:13:30 2007 @@ -2379,45 +2379,55 @@
if (!NT_SUCCESS(Status)) { - /* Driver is not initialized, try to load it */ - Status = IopLoadServiceModule(&DeviceNode->ServiceName, &ModuleObject); - - if (NT_SUCCESS(Status) || Status == STATUS_IMAGE_ALREADY_LOADED) - { - /* STATUS_IMAGE_ALREADY_LOADED means this driver - was loaded by the bootloader */ - if (Status != STATUS_IMAGE_ALREADY_LOADED) - { - /* Initialize the driver */ - Status = IopInitializeDriverModule(DeviceNode, ModuleObject, - &DeviceNode->ServiceName, FALSE, &DriverObject); - } - else - { - Status = STATUS_SUCCESS; - } - } + /* Driver is not initialized, try to load it */ + Status = IopLoadServiceModule(&DeviceNode->ServiceName, &ModuleObject); + + if (NT_SUCCESS(Status) || Status == STATUS_IMAGE_ALREADY_LOADED) + { + /* STATUS_IMAGE_ALREADY_LOADED means this driver + was loaded by the bootloader */ + if (Status != STATUS_IMAGE_ALREADY_LOADED) + { + /* Initialize the driver */ + Status = IopInitializeDriverModule(DeviceNode, ModuleObject, + &DeviceNode->ServiceName, FALSE, &DriverObject); + } + else + { + Status = STATUS_SUCCESS; + } + } + else + { + DPRINT1("IopLoadServiceModule(%wZ) failed with status 0x%08x\n", + &DeviceNode->ServiceName, Status); + } }
/* Driver is loaded and initialized at this point */ + if (NT_SUCCESS(Status)) + { + /* We have a driver for this DeviceNode */ + DeviceNode->Flags |= DN_DRIVER_LOADED; + /* Attach lower level filter drivers. */ + IopAttachFilterDrivers(DeviceNode, TRUE); + /* Initialize the function driver for the device node */ + Status = IopInitializeDevice(DeviceNode, DriverObject); + if (NT_SUCCESS(Status)) { - /* We have a driver for this DeviceNode */ - DeviceNode->Flags |= DN_DRIVER_LOADED; - /* Attach lower level filter drivers. */ - IopAttachFilterDrivers(DeviceNode, TRUE); - /* Initialize the function driver for the device node */ - Status = IopInitializeDevice(DeviceNode, DriverObject); - - if (NT_SUCCESS(Status)) - { - /* Attach upper level filter drivers. */ - IopAttachFilterDrivers(DeviceNode, FALSE); - IopDeviceNodeSetFlag(DeviceNode, DNF_STARTED); - - Status = IopStartDevice(DeviceNode); - } - } + /* Attach upper level filter drivers. */ + IopAttachFilterDrivers(DeviceNode, FALSE); + IopDeviceNodeSetFlag(DeviceNode, DNF_STARTED); + + Status = IopStartDevice(DeviceNode); + } + else + { + DPRINT1("IopInitializeDevice(%wZ) failed with status 0x%08x\n", + &DeviceNode->InstancePath, Status); + } + } else { /*