--- trunk/reactos/ntoskrnl/io/driver.c 2005-04-11 15:43:04 UTC (rev 14588)
+++ trunk/reactos/ntoskrnl/io/driver.c 2005-04-11 17:28:14 UTC (rev 14589)
@@ -511,6 +511,9 @@
* Module object representing the driver. It can be retrieve by
* IopLoadServiceModule.
*
+ * ServiceName
+ * Name of the service (as in registry).
+ *
* FileSystemDriver
* Set to TRUE for file system drivers.
*
@@ -523,6 +526,7 @@
IopInitializeDriverModule(
IN PDEVICE_NODE DeviceNode,
IN PMODULE_OBJECT ModuleObject,
+ IN PUNICODE_STRING ServiceName,
IN BOOLEAN FileSystemDriver,
OUT PDRIVER_OBJECT *DriverObject)
{
@@ -533,7 +537,7 @@
Status = IopCreateDriverObject(
DriverObject,
- &DeviceNode->ServiceName,
+ ServiceName,
FileSystemDriver,
ModuleObject->Base,
ModuleObject->Length);
@@ -544,14 +548,14 @@
return Status;
}
- if (DeviceNode->ServiceName.Buffer)
+ if (ServiceName->Buffer)
{
- RegistryKey.Length = DeviceNode->ServiceName.Length +
+ RegistryKey.Length = ServiceName->Length +
sizeof(ServicesKeyName) - sizeof(UNICODE_NULL);
RegistryKey.MaximumLength = RegistryKey.Length + sizeof(UNICODE_NULL);
RegistryKey.Buffer = ExAllocatePool(PagedPool, RegistryKey.MaximumLength);
wcscpy(RegistryKey.Buffer, ServicesKeyName);
- wcscat(RegistryKey.Buffer, DeviceNode->ServiceName.Buffer);
+ wcscat(RegistryKey.Buffer, ServiceName->Buffer);
}
else
{
@@ -613,7 +617,8 @@
if (!NT_SUCCESS(Status))
continue;
- Status = IopInitializeDriverModule(DeviceNode, ModuleObject, FALSE, &DriverObject);
+ Status = IopInitializeDriverModule(DeviceNode, ModuleObject, &ServiceName,
+ FALSE, &DriverObject);
if (!NT_SUCCESS(Status))
continue;
@@ -1165,8 +1170,8 @@
* Initialize the driver
*/
- Status = IopInitializeDriverModule(DeviceNode, ModuleObject, FALSE,
- &DriverObject);
+ Status = IopInitializeDriverModule(DeviceNode, ModuleObject,
+ &DeviceNode->ServiceName, FALSE, &DriverObject);
if (!NT_SUCCESS(Status))
{
@@ -1873,6 +1878,7 @@
Status = IopInitializeDriverModule(
DeviceNode,
ModuleObject,
+ &DeviceNode->ServiceName,
(Type == 2 /* SERVICE_FILE_SYSTEM_DRIVER */ ||
Type == 8 /* SERVICE_RECOGNIZER_DRIVER */),
&DriverObject);
--- trunk/reactos/ntoskrnl/io/pnpmgr.c 2005-04-11 15:43:04 UTC (rev 14588)
+++ trunk/reactos/ntoskrnl/io/pnpmgr.c 2005-04-11 17:28:14 UTC (rev 14589)
@@ -1501,7 +1501,8 @@
Status = IopLoadServiceModule(&DeviceNode->ServiceName, &ModuleObject);
if (NT_SUCCESS(Status))
{
- Status = IopInitializeDriverModule(DeviceNode, ModuleObject, FALSE, &DriverObject);
+ Status = IopInitializeDriverModule(DeviceNode, ModuleObject,
+ &DeviceNode->ServiceName, FALSE, &DriverObject);
if (NT_SUCCESS(Status))
{
/* Attach lower level filter drivers. */