Set the ConfigFlags value in registry if not present
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c

Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
--- trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-12-15 13:48:26 UTC (rev 20188)
+++ trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-12-15 14:15:18 UTC (rev 20189)
@@ -996,7 +996,7 @@
    UNICODE_STRING KeyName;
    HANDLE LogConfKey;
    ULONG ResCount;
-   ULONG ListSize;
+   ULONG ListSize, ResultLength;
    NTSTATUS Status;
 
    DPRINT("IopSetDeviceInstanceData() called\n");
@@ -1051,6 +1051,26 @@
       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)
   {