Filip Navara <xnavara(a)volny.cz>cz>: Use correct service name in
IopInitializeDriverModule
Modified: trunk/reactos/ntoskrnl/include/internal/io.h
Modified: trunk/reactos/ntoskrnl/io/driver.c
Modified: trunk/reactos/ntoskrnl/io/iomgr.c
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
_____
Modified: trunk/reactos/ntoskrnl/include/internal/io.h
--- trunk/reactos/ntoskrnl/include/internal/io.h 2005-04-11
15:43:04 UTC (rev 14588)
+++ trunk/reactos/ntoskrnl/include/internal/io.h 2005-04-11
17:28:14 UTC (rev 14589)
@@ -491,6 +491,7 @@
IopInitializeDriverModule(
IN PDEVICE_NODE DeviceNode,
IN PMODULE_OBJECT ModuleObject,
+ IN PUNICODE_STRING ServiceName,
IN BOOLEAN FileSystemDriver,
OUT PDRIVER_OBJECT *DriverObject);
_____
Modified: trunk/reactos/ntoskrnl/io/driver.c
--- 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);
_____
Modified: trunk/reactos/ntoskrnl/io/iomgr.c
--- trunk/reactos/ntoskrnl/io/iomgr.c 2005-04-11 15:43:04 UTC (rev
14588)
+++ trunk/reactos/ntoskrnl/io/iomgr.c 2005-04-11 17:28:14 UTC (rev
14589)
@@ -595,6 +595,7 @@
Status = IopInitializeDriverModule(
DeviceNode,
&ModuleObject,
+ &DeviceNode->ServiceName,
TRUE,
&DriverObject);
if (!NT_SUCCESS(Status))
_____
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
--- 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. */