- STANDARD_RIGHTS_REQUIRED,
- NULL,
- CmiKeyType,
- (PVOID*) &NewKey);
- assert(NT_SUCCESS(Status));
- Status = CmiAddSubKey(CmiVolatileHive,
- CmiRootKey,
- NewKey,
- L"User",
- wcslen(L"User") * sizeof(WCHAR),
- 0,
- NULL,
- 0);
- assert(NT_SUCCESS(Status));
- NewKey->RegistryHive = CmiVolatileHive;
- NewKey->Flags = 0;
- NewKey->NumberOfSubKeys = 0;
- NewKey->SubKeys = NULL;
- NewKey->SizeOfSubKeys = NewKey->KeyCell->NumberOfSubKeys;
- NewKey->Name = ExAllocatePool(PagedPool, strlen("User"));
- NewKey->NameSize = strlen("User");
- memcpy(NewKey->Name, "User", strlen("User"));
- CmiAddKeyToList(CmiRootKey, NewKey);
- CmiUserKey = NewKey;
-
- /* Create '\Registry\Machine\HARDWARE' key. */
- Status = ObCreateObject(&KeyHandle,
- STANDARD_RIGHTS_REQUIRED,
- NULL,
- CmiKeyType,
- (PVOID*)&NewKey);
- assert(NT_SUCCESS(Status));
- Status = CmiAddSubKey(CmiVolatileHive,
- CmiMachineKey,
- NewKey,
- L"HARDWARE",
- wcslen(L"HARDWARE") * sizeof(WCHAR),
- 0,
- NULL,
- 0);
- assert(NT_SUCCESS(Status));
- NewKey->RegistryHive = CmiVolatileHive;
- NewKey->Flags = 0;
- NewKey->NumberOfSubKeys = 0;
- NewKey->SubKeys = NULL;
- NewKey->SizeOfSubKeys = NewKey->KeyCell->NumberOfSubKeys;
- NewKey->Name = ExAllocatePool(PagedPool, strlen("HARDWARE"));
- NewKey->NameSize = strlen("HARDWARE");
- memcpy(NewKey->Name, "HARDWARE", strlen("HARDWARE"));
- CmiAddKeyToList(CmiMachineKey, NewKey);
- CmiHardwareKey = NewKey;
-
- /* Create '\Registry\Machine\HARDWARE\DESCRIPTION' key. */
- Status = ObCreateObject(&KeyHandle,
- STANDARD_RIGHTS_REQUIRED,
- NULL,
- CmiKeyType,
- (PVOID*) &NewKey);
- assert(NT_SUCCESS(Status));
- Status = CmiAddSubKey(CmiVolatileHive,
- CmiHardwareKey,
- NewKey,
- L"DESCRIPTION",
- wcslen(L"DESCRIPTION") * sizeof(WCHAR),
- 0,
- NULL,
- 0);
- assert(NT_SUCCESS(Status));
- NewKey->RegistryHive = CmiVolatileHive;
- NewKey->Flags = 0;
- NewKey->NumberOfSubKeys = 0;
- NewKey->SubKeys = NULL;
- NewKey->SizeOfSubKeys = NewKey->KeyCell->NumberOfSubKeys;
- NewKey->Name = ExAllocatePool(PagedPool, strlen("DESCRIPTION"));
- NewKey->NameSize = strlen("DESCRIPTION");
- memcpy(NewKey->Name, "DESCRIPTION", strlen("DESCRIPTION"));
- CmiAddKeyToList(CmiHardwareKey, NewKey);
-
- /* Create '\Registry\Machine\HARDWARE\DEVICEMAP' key. */
- Status = ObCreateObject(&KeyHandle,
- STANDARD_RIGHTS_REQUIRED,
- NULL,
- CmiKeyType,
- (PVOID*) &NewKey);
- assert(NT_SUCCESS(Status));
- Status = CmiAddSubKey(CmiVolatileHive,
- CmiHardwareKey,
- NewKey,
- L"DEVICEMAP",
- wcslen(L"DEVICEMAP") * sizeof(WCHAR),
- 0,
- NULL,
- 0);
- assert(NT_SUCCESS(Status));
- NewKey->RegistryHive = CmiVolatileHive;
- NewKey->Flags = 0;
- NewKey->NumberOfSubKeys = 0;
- NewKey->SubKeys = NULL;
- NewKey->SizeOfSubKeys = NewKey->KeyCell->NumberOfSubKeys;
- NewKey->Name = ExAllocatePool(PagedPool, strlen("DEVICEMAP"));
- NewKey->NameSize = strlen("DEVICEMAP");
- memcpy(NewKey->Name, "DEVICEMAP", strlen("DEVICEMAP"));
- CmiAddKeyToList(CmiHardwareKey,NewKey);
-
- /* Create '\Registry\Machine\HARDWARE\RESOURCEMAP' key. */
- Status = ObCreateObject(&KeyHandle,
- STANDARD_RIGHTS_REQUIRED,
- NULL,
- CmiKeyType,
- (PVOID*) &NewKey);