KEY_READ);
if (!NT_SUCCESS(Status))
{
- DPRINT1("IopOpenRegistryKeyEx() failed with Status %08X\n", Status);
+ DPRINT1("IopOpenRegistryKeyEx() failed for '%wZ' with status 0x%lx\n",
+ &EnumRoot, Status);
return Status;
}
ZwClose(EnumRootKey);
if (!NT_SUCCESS(Status))
{
- DPRINT1("IopOpenRegistryKeyEx() failed with Status %08X\n", Status);
+ DPRINT1("IopOpenRegistryKeyEx() failed for '%wZ' with status 0x%lx\n",
+ &DeviceNode->InstancePath, Status);
return Status;
}
if (!NT_SUCCESS(Status))
{
/* No class key */
- DPRINT1("IopOpenRegistryKeyEx() failed with Status %08X\n", Status);
+ DPRINT1("IopOpenRegistryKeyEx() failed for '%wZ' with status 0x%lx\n",
+ &ControlClass, Status);
ClassKey = NULL;
}
else
if (!NT_SUCCESS(Status))
{
/* No class key */
- DPRINT1("IopOpenRegistryKeyEx() failed with Status %08X\n", Status);
+ DPRINT1("IopOpenRegistryKeyEx() failed for '%wZ' with status 0x%lx\n",
+ &ClassGuid, Status);
ClassKey = NULL;
}
}
if (!NT_SUCCESS(Status))
{
/* No properties */
- DPRINT("IopOpenRegistryKeyEx() failed with Status %08X\n", Status);
+ DPRINT("IopOpenRegistryKeyEx() failed for '%wZ' with status 0x%lx\n",
+ &Properties, Status);
PropertiesKey = NULL;
}
else
}
/* Do ReactOS-style setup */
- Status = IopAttachFilterDrivers(DeviceNode, TRUE);
+ Status = IopAttachFilterDrivers(DeviceNode, SubKey, TRUE);
if (!NT_SUCCESS(Status))
{
IopRemoveDevice(DeviceNode);
- return Status;
+ goto Exit;
}
+
Status = IopInitializeDevice(DeviceNode, DriverObject);
- if (NT_SUCCESS(Status))
+ if (!NT_SUCCESS(Status))
{
- Status = IopAttachFilterDrivers(DeviceNode, FALSE);
- if (!NT_SUCCESS(Status))
- {
- IopRemoveDevice(DeviceNode);
- return Status;
- }
+ goto Exit;
+ }
- Status = IopStartDevice(DeviceNode);
+ Status = IopAttachFilterDrivers(DeviceNode, SubKey, FALSE);
+ if (!NT_SUCCESS(Status))
+ {
+ IopRemoveDevice(DeviceNode);
+ goto Exit;
}
- /* Return status */
+ Status = IopStartDevice(DeviceNode);
+
+Exit:
+ /* Close key and return status */
+ ZwClose(SubKey);
return Status;
}
if (Disposition == REG_CREATED_NEW_KEY)
{
/* FIXME: DACLs */
- DPRINT1("Need to build DACL\n");
}
/* Create the root key */