Filip Navara xnavara@volny.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. */