Set the ConfigFlags value in registry if not present
authorHervé Poussineau <hpoussin@reactos.org>
Thu, 15 Dec 2005 14:15:18 +0000 (14:15 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Thu, 15 Dec 2005 14:15:18 +0000 (14:15 +0000)
svn path=/trunk/; revision=20189

reactos/ntoskrnl/io/pnpmgr.c

index 25d802d..4269f94 100644 (file)
@@ -996,7 +996,7 @@ IopSetDeviceInstanceData(HANDLE InstanceKey,
    UNICODE_STRING KeyName;
    HANDLE LogConfKey;
    ULONG ResCount;
-   ULONG ListSize;
+   ULONG ListSize, ResultLength;
    NTSTATUS Status;
 
    DPRINT("IopSetDeviceInstanceData() called\n");
@@ -1051,6 +1051,26 @@ IopSetDeviceInstanceData(HANDLE InstanceKey,
       ZwClose(LogConfKey);
    }
 
+   /* Set the 'ConfigFlags' value */
+   RtlInitUnicodeString(&KeyName, L"ConfigFlags");
+   Status = ZwQueryValueKey(InstanceKey,
+                            &KeyName,
+                            KeyValueBasicInformation,
+                            NULL,
+                            0,
+                            &ResultLength);
+  if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
+  {
+    /* Write the default value */
+    ULONG DefaultConfigFlags = 0;
+    Status = ZwSetValueKey(InstanceKey,
+                           &KeyName,
+                           0,
+                           REG_DWORD,
+                           &DefaultConfigFlags,
+                           sizeof(DefaultConfigFlags));
+  }
+
 #if 0
   if (DeviceNode->PhysicalDeviceObject != NULL)
   {