Author: cfinck
Date: Mon Jan 7 20:22:05 2008
New Revision: 31648
URL:
http://svn.reactos.org/svn/reactos?rev=31648&view=rev
Log:
Fix the indentation mess in "settings.c" as well
Modified:
trunk/reactos/base/setup/usetup/settings.c
Modified: trunk/reactos/base/setup/usetup/settings.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/settings…
==============================================================================
--- trunk/reactos/base/setup/usetup/settings.c (original)
+++ trunk/reactos/base/setup/usetup/settings.c Mon Jan 7 20:22:05 2008
@@ -36,818 +36,828 @@
GetComputerIdentifier(PWSTR Identifier,
ULONG IdentifierLength)
{
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING KeyName;
- LPCWSTR ComputerIdentifier;
- HANDLE ProcessorsKey;
- PKEY_FULL_INFORMATION pFullInfo;
- ULONG Size, SizeNeeded;
- NTSTATUS Status;
-
- DPRINT("GetComputerIdentifier() called\n");
-
- Size = sizeof(KEY_FULL_INFORMATION);
- pFullInfo = (PKEY_FULL_INFORMATION)RtlAllocateHeap(RtlGetProcessHeap(), 0, Size);
- if (!pFullInfo)
- {
- DPRINT("RtlAllocateHeap() failed\n");
- return FALSE;
- }
-
- /* Open the processors key */
- RtlInitUnicodeString(&KeyName,
-
L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor");
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- NULL,
- NULL);
- Status = NtOpenKey(&ProcessorsKey,
- KEY_QUERY_VALUE ,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("NtOpenKey() failed (Status 0x%lx)\n", Status);
- RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
- return FALSE;
- }
-
- /* Get number of subkeys */
- Status = NtQueryKey(
- ProcessorsKey,
- KeyFullInformation,
- pFullInfo,
- Size,
- &Size);
- NtClose(ProcessorsKey);
- if (!NT_SUCCESS(Status) && Status != STATUS_BUFFER_OVERFLOW)
- {
- DPRINT("NtQueryKey() failed (Status 0x%lx)\n", Status);
- RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
- return FALSE;
- }
-
- /* Find computer identifier */
- if (pFullInfo->SubKeys == 0)
- {
- /* Something strange happened. No processor detected */
- RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
- return FALSE;
- }
-
- if (pFullInfo->SubKeys == 1)
- {
- /* Computer is mono-CPU */
- ComputerIdentifier = L"PC UP";
- }
- else
- {
- /* Computer is multi-CPUs */
- ComputerIdentifier = L"PC MP";
- }
- RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
-
- /* Copy computer identifier to return buffer */
- SizeNeeded = (wcslen(ComputerIdentifier) + 1) * sizeof(WCHAR);
- if (SizeNeeded > IdentifierLength)
- return FALSE;
- RtlCopyMemory(Identifier, ComputerIdentifier, SizeNeeded);
- return TRUE;
+ OBJECT_ATTRIBUTES ObjectAttributes;
+ UNICODE_STRING KeyName;
+ LPCWSTR ComputerIdentifier;
+ HANDLE ProcessorsKey;
+ PKEY_FULL_INFORMATION pFullInfo;
+ ULONG Size, SizeNeeded;
+ NTSTATUS Status;
+
+ DPRINT("GetComputerIdentifier() called\n");
+
+ Size = sizeof(KEY_FULL_INFORMATION);
+ pFullInfo = (PKEY_FULL_INFORMATION)RtlAllocateHeap(RtlGetProcessHeap(), 0, Size);
+ if (!pFullInfo)
+ {
+ DPRINT("RtlAllocateHeap() failed\n");
+ return FALSE;
+ }
+
+ /* Open the processors key */
+ RtlInitUnicodeString(&KeyName,
+
L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor");
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ NULL,
+ NULL);
+
+ Status = NtOpenKey(&ProcessorsKey,
+ KEY_QUERY_VALUE ,
+ &ObjectAttributes);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("NtOpenKey() failed (Status 0x%lx)\n", Status);
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
+ return FALSE;
+ }
+
+ /* Get number of subkeys */
+ Status = NtQueryKey(
+ ProcessorsKey,
+ KeyFullInformation,
+ pFullInfo,
+ Size,
+ &Size);
+ NtClose(ProcessorsKey);
+
+ if (!NT_SUCCESS(Status) && Status != STATUS_BUFFER_OVERFLOW)
+ {
+ DPRINT("NtQueryKey() failed (Status 0x%lx)\n", Status);
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
+ return FALSE;
+ }
+
+ /* Find computer identifier */
+ if (pFullInfo->SubKeys == 0)
+ {
+ /* Something strange happened. No processor detected */
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
+ return FALSE;
+ }
+
+ if (pFullInfo->SubKeys == 1)
+ {
+ /* Computer is mono-CPU */
+ ComputerIdentifier = L"PC UP";
+ }
+ else
+ {
+ /* Computer is multi-CPUs */
+ ComputerIdentifier = L"PC MP";
+ }
+
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
+
+ /* Copy computer identifier to return buffer */
+ SizeNeeded = (wcslen(ComputerIdentifier) + 1) * sizeof(WCHAR);
+ if (SizeNeeded > IdentifierLength)
+ return FALSE;
+
+ RtlCopyMemory(Identifier, ComputerIdentifier, SizeNeeded);
+
+ return TRUE;
}
PGENERIC_LIST
CreateComputerTypeList(HINF InfFile)
{
- CHAR Buffer[128];
- PGENERIC_LIST List;
- INFCONTEXT Context;
- PWCHAR KeyName;
- PWCHAR KeyValue;
- PWCHAR UserData;
- WCHAR ComputerIdentifier[128];
- WCHAR ComputerKey[32];
-
- /* Get the computer identification */
- if (!GetComputerIdentifier(ComputerIdentifier, 128))
- {
- ComputerIdentifier[0] = 0;
- }
-
- DPRINT("Computer identifier: '%S'\n", ComputerIdentifier);
-
- /* Search for matching device identifier */
- if (!SetupFindFirstLineW(InfFile, L"Map.Computer", NULL, &Context))
- {
- /* FIXME: error message */
- return NULL;
- }
-
- do
- {
- if (!INF_GetDataField(&Context, 1, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetDataField() failed\n");
- return NULL;
- }
-
- DPRINT("KeyValue: %S\n", KeyValue);
- if (wcsstr(ComputerIdentifier, KeyValue))
- {
- if (!INF_GetDataField(&Context, 0, &KeyName))
+ CHAR Buffer[128];
+ PGENERIC_LIST List;
+ INFCONTEXT Context;
+ PWCHAR KeyName;
+ PWCHAR KeyValue;
+ PWCHAR UserData;
+ WCHAR ComputerIdentifier[128];
+ WCHAR ComputerKey[32];
+
+ /* Get the computer identification */
+ if (!GetComputerIdentifier(ComputerIdentifier, 128))
+ {
+ ComputerIdentifier[0] = 0;
+ }
+
+ DPRINT("Computer identifier: '%S'\n", ComputerIdentifier);
+
+ /* Search for matching device identifier */
+ if (!SetupFindFirstLineW(InfFile, L"Map.Computer", NULL, &Context))
+ {
+ /* FIXME: error message */
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetDataField(&Context, 1, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetDataField() failed\n");
+ return NULL;
+ }
+
+ DPRINT("KeyValue: %S\n", KeyValue);
+ if (wcsstr(ComputerIdentifier, KeyValue))
+ {
+ if (!INF_GetDataField(&Context, 0, &KeyName))
{
- /* FIXME: Handle error! */
- DPRINT("INF_GetDataField() failed\n");
- return NULL;
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetDataField() failed\n");
+ return NULL;
}
- DPRINT("Computer key: %S\n", KeyName);
- wcscpy(ComputerKey, KeyName);
- }
- }
- while (SetupFindNextLine(&Context, &Context));
-
- List = CreateGenericList();
- if (List == NULL)
- return NULL;
-
- if (!SetupFindFirstLineW (InfFile, L"Computer", NULL, &Context))
- {
- DestroyGenericList(List, FALSE);
- return NULL;
- }
-
- do
- {
- if (!INF_GetData (&Context, &KeyName, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetData() failed\n");
- break;
- }
-
- UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
- 0,
- (wcslen(KeyName) + 1) * sizeof(WCHAR));
- if (UserData == NULL)
- {
- /* FIXME: Handle error! */
- }
-
- wcscpy(UserData, KeyName);
-
- sprintf(Buffer, "%S", KeyValue);
- AppendGenericListEntry(List, Buffer, UserData,
- _wcsicmp(KeyName, ComputerKey) ? FALSE : TRUE);
- }
- while (SetupFindNextLine(&Context, &Context));
-
- return List;
+ DPRINT("Computer key: %S\n", KeyName);
+ wcscpy(ComputerKey, KeyName);
+ }
+ } while (SetupFindNextLine(&Context, &Context));
+
+ List = CreateGenericList();
+ if (List == NULL)
+ return NULL;
+
+ if (!SetupFindFirstLineW (InfFile, L"Computer", NULL, &Context))
+ {
+ DestroyGenericList(List, FALSE);
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetData (&Context, &KeyName, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetData() failed\n");
+ break;
+ }
+
+ UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
+ 0,
+ (wcslen(KeyName) + 1) * sizeof(WCHAR));
+ if (UserData == NULL)
+ {
+ /* FIXME: Handle error! */
+ }
+
+ wcscpy(UserData, KeyName);
+
+ sprintf(Buffer, "%S", KeyValue);
+ AppendGenericListEntry(List, Buffer, UserData,
+ _wcsicmp(KeyName, ComputerKey) ? FALSE : TRUE);
+ } while (SetupFindNextLine(&Context, &Context));
+
+ return List;
}
static BOOLEAN
GetDisplayIdentifier(PWSTR Identifier,
- ULONG IdentifierLength)
-{
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING KeyName;
- WCHAR Buffer[32];
- HANDLE BusKey;
- HANDLE BusInstanceKey;
- HANDLE ControllerKey;
- HANDLE ControllerInstanceKey;
- ULONG BusInstance;
- ULONG ControllerInstance;
- ULONG BufferLength;
- ULONG ReturnedLength;
- PKEY_VALUE_PARTIAL_INFORMATION ValueInfo;
- NTSTATUS Status;
-
- DPRINT("GetDisplayIdentifier() called\n");
-
- /* Open the bus key */
- RtlInitUnicodeString(&KeyName,
-
L"\\Registry\\Machine\\HARDWARE\\Description\\System\\MultifunctionAdapter");
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- NULL,
- NULL);
- Status = NtOpenKey(&BusKey,
- KEY_ALL_ACCESS,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- BusInstance = 0;
- while (TRUE)
- {
- swprintf(Buffer, L"%lu", BusInstance);
- RtlInitUnicodeString(&KeyName,
- Buffer);
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- BusKey,
- NULL);
- Status = NtOpenKey(&BusInstanceKey,
- KEY_ALL_ACCESS,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
- NtClose(BusKey);
- return FALSE;
- }
-
- /* Open the controller type key */
- RtlInitUnicodeString(&KeyName,
- L"DisplayController");
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- BusInstanceKey,
- NULL);
- Status = NtOpenKey(&ControllerKey,
- KEY_ALL_ACCESS,
- &ObjectAttributes);
- if (NT_SUCCESS(Status))
- {
- ControllerInstance = 0;
- while (TRUE)
- {
- /* Open the pointer controller instance key */
- swprintf(Buffer, L"%lu", ControllerInstance);
- RtlInitUnicodeString(&KeyName,
- Buffer);
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- ControllerKey,
- NULL);
- Status = NtOpenKey(&ControllerInstanceKey,
- KEY_ALL_ACCESS,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
- NtClose(ControllerKey);
- NtClose(BusInstanceKey);
- NtClose(BusKey);
- return FALSE;
- }
-
- /* Get controller identifier */
- RtlInitUnicodeString(&KeyName,
- L"Identifier");
-
- BufferLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) +
- 256 * sizeof(WCHAR);
- ValueInfo = (KEY_VALUE_PARTIAL_INFORMATION*) RtlAllocateHeap(RtlGetProcessHeap(),
- 0,
- BufferLength);
- if (ValueInfo == NULL)
- {
- DPRINT("RtlAllocateHeap() failed\n");
- NtClose(ControllerInstanceKey);
- NtClose(ControllerKey);
- NtClose(BusInstanceKey);
- NtClose(BusKey);
- return FALSE;
- }
-
- Status = NtQueryValueKey(ControllerInstanceKey,
- &KeyName,
- KeyValuePartialInformation,
- ValueInfo,
- BufferLength,
- &ReturnedLength);
- if (NT_SUCCESS(Status))
- {
- DPRINT("Identifier: %S\n", (PWSTR)ValueInfo->Data);
-
- BufferLength = min(ValueInfo->DataLength / sizeof(WCHAR), IdentifierLength);
- RtlCopyMemory (Identifier,
- ValueInfo->Data,
- BufferLength * sizeof(WCHAR));
- Identifier[BufferLength] = 0;
-
- RtlFreeHeap(RtlGetProcessHeap(),
- 0,
- ValueInfo);
- NtClose(ControllerInstanceKey);
- NtClose(ControllerKey);
- NtClose(BusInstanceKey);
- NtClose(BusKey);
- return TRUE;
- }
-
- NtClose(ControllerInstanceKey);
-
- ControllerInstance++;
- }
-
- NtClose(ControllerKey);
- }
-
- NtClose(BusInstanceKey);
-
- BusInstance++;
- }
-
- NtClose(BusKey);
-
- return FALSE;
+ ULONG IdentifierLength)
+{
+ OBJECT_ATTRIBUTES ObjectAttributes;
+ UNICODE_STRING KeyName;
+ WCHAR Buffer[32];
+ HANDLE BusKey;
+ HANDLE BusInstanceKey;
+ HANDLE ControllerKey;
+ HANDLE ControllerInstanceKey;
+ ULONG BusInstance;
+ ULONG ControllerInstance;
+ ULONG BufferLength;
+ ULONG ReturnedLength;
+ PKEY_VALUE_PARTIAL_INFORMATION ValueInfo;
+ NTSTATUS Status;
+
+ DPRINT("GetDisplayIdentifier() called\n");
+
+ /* Open the bus key */
+ RtlInitUnicodeString(&KeyName,
+
L"\\Registry\\Machine\\HARDWARE\\Description\\System\\MultifunctionAdapter");
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ NULL,
+ NULL);
+
+ Status = NtOpenKey(&BusKey,
+ KEY_ALL_ACCESS,
+ &ObjectAttributes);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ BusInstance = 0;
+ while (TRUE)
+ {
+ swprintf(Buffer, L"%lu", BusInstance);
+ RtlInitUnicodeString(&KeyName,
+ Buffer);
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ BusKey,
+ NULL);
+
+ Status = NtOpenKey(&BusInstanceKey,
+ KEY_ALL_ACCESS,
+ &ObjectAttributes);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
+ NtClose(BusKey);
+ return FALSE;
+ }
+
+ /* Open the controller type key */
+ RtlInitUnicodeString(&KeyName,
+ L"DisplayController");
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ BusInstanceKey,
+ NULL);
+
+ Status = NtOpenKey(&ControllerKey,
+ KEY_ALL_ACCESS,
+ &ObjectAttributes);
+ if (NT_SUCCESS(Status))
+ {
+ ControllerInstance = 0;
+
+ while (TRUE)
+ {
+ /* Open the pointer controller instance key */
+ swprintf(Buffer, L"%lu", ControllerInstance);
+ RtlInitUnicodeString(&KeyName,
+ Buffer);
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ ControllerKey,
+ NULL);
+
+ Status = NtOpenKey(&ControllerInstanceKey,
+ KEY_ALL_ACCESS,
+ &ObjectAttributes);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("NtOpenKey() failed (Status %lx)\n", Status);
+ NtClose(ControllerKey);
+ NtClose(BusInstanceKey);
+ NtClose(BusKey);
+ return FALSE;
+ }
+
+ /* Get controller identifier */
+ RtlInitUnicodeString(&KeyName,
+ L"Identifier");
+
+ BufferLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) +
+ 256 * sizeof(WCHAR);
+ ValueInfo = (KEY_VALUE_PARTIAL_INFORMATION*)
RtlAllocateHeap(RtlGetProcessHeap(),
+ 0,
+
BufferLength);
+ if (ValueInfo == NULL)
+ {
+ DPRINT("RtlAllocateHeap() failed\n");
+ NtClose(ControllerInstanceKey);
+ NtClose(ControllerKey);
+ NtClose(BusInstanceKey);
+ NtClose(BusKey);
+ return FALSE;
+ }
+
+ Status = NtQueryValueKey(ControllerInstanceKey,
+ &KeyName,
+ KeyValuePartialInformation,
+ ValueInfo,
+ BufferLength,
+ &ReturnedLength);
+ if (NT_SUCCESS(Status))
+ {
+ DPRINT("Identifier: %S\n", (PWSTR)ValueInfo->Data);
+
+ BufferLength = min(ValueInfo->DataLength / sizeof(WCHAR),
IdentifierLength);
+ RtlCopyMemory (Identifier,
+ ValueInfo->Data,
+ BufferLength * sizeof(WCHAR));
+ Identifier[BufferLength] = 0;
+
+ RtlFreeHeap(RtlGetProcessHeap(),
+ 0,
+ ValueInfo);
+
+ NtClose(ControllerInstanceKey);
+ NtClose(ControllerKey);
+ NtClose(BusInstanceKey);
+ NtClose(BusKey);
+ return TRUE;
+ }
+
+ NtClose(ControllerInstanceKey);
+
+ ControllerInstance++;
+ }
+
+ NtClose(ControllerKey);
+ }
+
+ NtClose(BusInstanceKey);
+
+ BusInstance++;
+ }
+
+ NtClose(BusKey);
+
+ return FALSE;
}
PGENERIC_LIST
CreateDisplayDriverList(HINF InfFile)
{
- CHAR Buffer[128];
- PGENERIC_LIST List;
- INFCONTEXT Context;
- PWCHAR KeyName;
- PWCHAR KeyValue;
- PWCHAR UserData;
- WCHAR DisplayIdentifier[128];
- WCHAR DisplayKey[32];
-
- /* Get the display identification */
- if (!GetDisplayIdentifier(DisplayIdentifier, 128))
- {
- DisplayIdentifier[0] = 0;
- }
-
- DPRINT("Display identifier: '%S'\n", DisplayIdentifier);
-
- /* Search for matching device identifier */
- if (!SetupFindFirstLineW(InfFile, L"Map.Display", NULL, &Context))
- {
- /* FIXME: error message */
- return NULL;
- }
-
- do
- {
- if (!INF_GetDataField(&Context, 1, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetDataField() failed\n");
- return NULL;
- }
-
- DPRINT("KeyValue: %S\n", KeyValue);
- if (wcsstr(DisplayIdentifier, KeyValue))
- {
- if (!INF_GetDataField(&Context, 0, &KeyName))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetDataField() failed\n");
- return NULL;
- }
-
- DPRINT("Display key: %S\n", KeyName);
- wcscpy(DisplayKey, KeyName);
- }
- }
- while (SetupFindNextLine(&Context, &Context));
-
-
- List = CreateGenericList();
- if (List == NULL)
- return NULL;
-
- if (!SetupFindFirstLineW (InfFile, L"Display", NULL, &Context))
- {
- DestroyGenericList(List, FALSE);
- return NULL;
- }
-
- do
- {
- if (!INF_GetDataField(&Context, 0, &KeyName))
- {
- DPRINT1("INF_GetDataField() failed\n");
- break;
- }
-
- if (!INF_GetDataField(&Context, 1, &KeyValue))
- {
- DPRINT1("INF_GetDataField() failed\n");
- break;
- }
-
- UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
- 0,
- (wcslen(KeyName) + 1) * sizeof(WCHAR));
- if (UserData == NULL)
- {
- DPRINT1("RtlAllocateHeap() failed\n");
- DestroyGenericList(List, TRUE);
- return NULL;
- }
-
- wcscpy(UserData, KeyName);
-
- sprintf(Buffer, "%S", KeyValue);
- AppendGenericListEntry(List,
- Buffer,
- UserData,
- _wcsicmp(KeyName, DisplayKey) ? FALSE : TRUE);
- }
- while (SetupFindNextLine(&Context, &Context));
+ CHAR Buffer[128];
+ PGENERIC_LIST List;
+ INFCONTEXT Context;
+ PWCHAR KeyName;
+ PWCHAR KeyValue;
+ PWCHAR UserData;
+ WCHAR DisplayIdentifier[128];
+ WCHAR DisplayKey[32];
+
+ /* Get the display identification */
+ if (!GetDisplayIdentifier(DisplayIdentifier, 128))
+ {
+ DisplayIdentifier[0] = 0;
+ }
+
+ DPRINT("Display identifier: '%S'\n", DisplayIdentifier);
+
+ /* Search for matching device identifier */
+ if (!SetupFindFirstLineW(InfFile, L"Map.Display", NULL, &Context))
+ {
+ /* FIXME: error message */
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetDataField(&Context, 1, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetDataField() failed\n");
+ return NULL;
+ }
+
+ DPRINT("KeyValue: %S\n", KeyValue);
+ if (wcsstr(DisplayIdentifier, KeyValue))
+ {
+ if (!INF_GetDataField(&Context, 0, &KeyName))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetDataField() failed\n");
+ return NULL;
+ }
+
+ DPRINT("Display key: %S\n", KeyName);
+ wcscpy(DisplayKey, KeyName);
+ }
+ } while (SetupFindNextLine(&Context, &Context));
+
+ List = CreateGenericList();
+ if (List == NULL)
+ return NULL;
+
+ if (!SetupFindFirstLineW (InfFile, L"Display", NULL, &Context))
+ {
+ DestroyGenericList(List, FALSE);
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetDataField(&Context, 0, &KeyName))
+ {
+ DPRINT1("INF_GetDataField() failed\n");
+ break;
+ }
+
+ if (!INF_GetDataField(&Context, 1, &KeyValue))
+ {
+ DPRINT1("INF_GetDataField() failed\n");
+ break;
+ }
+
+ UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
+ 0,
+ (wcslen(KeyName) + 1) * sizeof(WCHAR));
+ if (UserData == NULL)
+ {
+ DPRINT1("RtlAllocateHeap() failed\n");
+ DestroyGenericList(List, TRUE);
+ return NULL;
+ }
+
+ wcscpy(UserData, KeyName);
+
+ sprintf(Buffer, "%S", KeyValue);
+ AppendGenericListEntry(List,
+ Buffer,
+ UserData,
+ _wcsicmp(KeyName, DisplayKey) ? FALSE : TRUE);
+ } while (SetupFindNextLine(&Context, &Context));
#if 0
- AppendGenericListEntry(List, "Other display driver", NULL, TRUE);
+ AppendGenericListEntry(List, "Other display driver", NULL, TRUE);
#endif
- return List;
+ return List;
}
BOOLEAN
ProcessComputerFiles(HINF InfFile, PGENERIC_LIST List, PWCHAR* AdditionalSectionName)
{
- PGENERIC_LIST_ENTRY Entry;
- static WCHAR SectionName[128];
-
- DPRINT("ProcessComputerFiles() called\n");
-
- Entry = GetGenericListEntry(List);
- if (Entry == NULL)
- {
- DPRINT("GetGenericListEntry() failed\n");
- return FALSE;
- }
-
- wcscpy(SectionName, L"Files.");
- wcscat(SectionName, (const wchar_t*) Entry->UserData);
- *AdditionalSectionName = SectionName;
-
- return TRUE;
+ PGENERIC_LIST_ENTRY Entry;
+ static WCHAR SectionName[128];
+
+ DPRINT("ProcessComputerFiles() called\n");
+
+ Entry = GetGenericListEntry(List);
+ if (Entry == NULL)
+ {
+ DPRINT("GetGenericListEntry() failed\n");
+ return FALSE;
+ }
+
+ wcscpy(SectionName, L"Files.");
+ wcscat(SectionName, (const wchar_t*) Entry->UserData);
+ *AdditionalSectionName = SectionName;
+
+ return TRUE;
}
BOOLEAN
ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
{
- PGENERIC_LIST_ENTRY Entry;
- INFCONTEXT Context;
- PWCHAR ServiceName;
- ULONG StartValue;
- NTSTATUS Status;
- WCHAR RegPath [255];
- PWCHAR Buffer;
- ULONG Width, Hight, Bpp;
-
- DPRINT("ProcessDisplayRegistry() called\n");
-
- Entry = GetGenericListEntry(List);
- if (Entry == NULL)
- {
- DPRINT("GetGenericListEntry() failed\n");
- return FALSE;
- }
-
- if (!SetupFindFirstLineW(InfFile, L"Display", (WCHAR*) Entry->UserData,
&Context))
- {
- DPRINT("SetupFindFirstLineW() failed\n");
- return FALSE;
- }
-
- /* Enable the right driver */
- if (!INF_GetDataField(&Context, 3, &ServiceName))
- {
- DPRINT("INF_GetDataField() failed\n");
- return FALSE;
- }
-
- ASSERT(wcslen(ServiceName) < 10);
- DPRINT("Service name: %S\n", ServiceName);
-
- StartValue = 1;
- Status = RtlWriteRegistryValue(RTL_REGISTRY_SERVICES,
- ServiceName,
- L"Start",
- REG_DWORD,
- &StartValue,
- sizeof(ULONG));
-
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- /* Set the resolution */
- swprintf(RegPath, L"\\Registry\\Machine\\System\\CurrentControlSet\\Hardware
Profiles\\Current\\System\\CurrentControlSet\\Services\\%s\\Device0", ServiceName);
-
- if (!INF_GetDataField(&Context, 4, &Buffer))
- {
- DPRINT("INF_GetDataField() failed\n");
- return FALSE;
- }
- Width = wcstoul(Buffer, NULL, 10);
- Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
- RegPath,
- L"DefaultSettings.XResolution",
- REG_DWORD,
- &Width,
- sizeof(ULONG));
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
-
- if (!INF_GetDataField(&Context, 5, &Buffer))
- {
- DPRINT("INF_GetDataField() failed\n");
- return FALSE;
- }
- Hight = wcstoul(Buffer, 0, 0);
- Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
- RegPath,
- L"DefaultSettings.YResolution",
- REG_DWORD,
- &Hight,
- sizeof(ULONG));
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- if (!INF_GetDataField(&Context, 6, &Buffer))
- {
- DPRINT("INF_GetDataField() failed\n");
- return FALSE;
- }
- Bpp = wcstoul(Buffer, 0, 0);
- Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
- RegPath,
- L"DefaultSettings.BitsPerPel",
- REG_DWORD,
- &Bpp,
- sizeof(ULONG));
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- DPRINT("ProcessDisplayRegistry() done\n");
-
- return TRUE;
+ PGENERIC_LIST_ENTRY Entry;
+ INFCONTEXT Context;
+ PWCHAR ServiceName;
+ ULONG StartValue;
+ NTSTATUS Status;
+ WCHAR RegPath [255];
+ PWCHAR Buffer;
+ ULONG Width, Height, Bpp;
+
+ DPRINT("ProcessDisplayRegistry() called\n");
+
+ Entry = GetGenericListEntry(List);
+ if (Entry == NULL)
+ {
+ DPRINT("GetGenericListEntry() failed\n");
+ return FALSE;
+ }
+
+ if (!SetupFindFirstLineW(InfFile, L"Display", (WCHAR*) Entry->UserData,
&Context))
+ {
+ DPRINT("SetupFindFirstLineW() failed\n");
+ return FALSE;
+ }
+
+ /* Enable the right driver */
+ if (!INF_GetDataField(&Context, 3, &ServiceName))
+ {
+ DPRINT("INF_GetDataField() failed\n");
+ return FALSE;
+ }
+
+ ASSERT(wcslen(ServiceName) < 10);
+ DPRINT("Service name: %S\n", ServiceName);
+
+ StartValue = 1;
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_SERVICES,
+ ServiceName,
+ L"Start",
+ REG_DWORD,
+ &StartValue,
+ sizeof(ULONG));
+
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ /* Set the resolution */
+ swprintf(RegPath, L"\\Registry\\Machine\\System\\CurrentControlSet\\Hardware
Profiles\\Current\\System\\CurrentControlSet\\Services\\%s\\Device0", ServiceName);
+
+ if (!INF_GetDataField(&Context, 4, &Buffer))
+ {
+ DPRINT("INF_GetDataField() failed\n");
+ return FALSE;
+ }
+
+ Width = wcstoul(Buffer, NULL, 10);
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
+ RegPath,
+ L"DefaultSettings.XResolution",
+ REG_DWORD,
+ &Width,
+ sizeof(ULONG));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ if (!INF_GetDataField(&Context, 5, &Buffer))
+ {
+ DPRINT("INF_GetDataField() failed\n");
+ return FALSE;
+ }
+
+ Height = wcstoul(Buffer, 0, 0);
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
+ RegPath,
+ L"DefaultSettings.YResolution",
+ REG_DWORD,
+ &Height,
+ sizeof(ULONG));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ if (!INF_GetDataField(&Context, 6, &Buffer))
+ {
+ DPRINT("INF_GetDataField() failed\n");
+ return FALSE;
+ }
+
+ Bpp = wcstoul(Buffer, 0, 0);
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
+ RegPath,
+ L"DefaultSettings.BitsPerPel",
+ REG_DWORD,
+ &Bpp,
+ sizeof(ULONG));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ DPRINT("ProcessDisplayRegistry() done\n");
+
+ return TRUE;
}
PGENERIC_LIST
CreateKeyboardDriverList(HINF InfFile)
{
- CHAR Buffer[128];
- PGENERIC_LIST List;
- INFCONTEXT Context;
- PWCHAR KeyName;
- PWCHAR KeyValue;
- PWCHAR UserData;
-
- List = CreateGenericList();
- if (List == NULL)
- return NULL;
-
- if (!SetupFindFirstLineW (InfFile, L"Keyboard", NULL, &Context))
- {
- DestroyGenericList(List, FALSE);
- return NULL;
- }
-
- do
- {
- if (!INF_GetData (&Context, &KeyName, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetData() failed\n");
- break;
- }
-
- UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
- 0,
- (wcslen(KeyName) + 1) * sizeof(WCHAR));
- if (UserData == NULL)
- {
- /* FIXME: Handle error! */
- }
-
- wcscpy(UserData, KeyName);
-
- sprintf(Buffer, "%S", KeyValue);
- AppendGenericListEntry(List, Buffer, UserData, FALSE);
- }
- while (SetupFindNextLine(&Context, &Context));
-
- return List;
+ CHAR Buffer[128];
+ PGENERIC_LIST List;
+ INFCONTEXT Context;
+ PWCHAR KeyName;
+ PWCHAR KeyValue;
+ PWCHAR UserData;
+
+ List = CreateGenericList();
+ if (List == NULL)
+ return NULL;
+
+ if (!SetupFindFirstLineW (InfFile, L"Keyboard", NULL, &Context))
+ {
+ DestroyGenericList(List, FALSE);
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetData (&Context, &KeyName, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetData() failed\n");
+ break;
+ }
+
+ UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
+ 0,
+ (wcslen(KeyName) + 1) * sizeof(WCHAR));
+ if (UserData == NULL)
+ {
+ /* FIXME: Handle error! */
+ }
+
+ wcscpy(UserData, KeyName);
+
+ sprintf(Buffer, "%S", KeyValue);
+ AppendGenericListEntry(List, Buffer, UserData, FALSE);
+ } while (SetupFindNextLine(&Context, &Context));
+
+ return List;
}
PGENERIC_LIST
CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage)
-{
- CHAR Buffer[128];
- PGENERIC_LIST List;
- INFCONTEXT Context;
- PWCHAR KeyName;
- PWCHAR KeyValue;
- PWCHAR UserData;
-
- /* Get default language id */
- if (!SetupFindFirstLineW (InfFile, L"NLS", L"DefaultLanguage",
&Context))
- return NULL;
-
- if (!INF_GetData (&Context, NULL, &KeyValue))
- return NULL;
-
- wcscpy(DefaultLanguage, KeyValue);
-
+{
+ CHAR Buffer[128];
+ PGENERIC_LIST List;
+ INFCONTEXT Context;
+ PWCHAR KeyName;
+ PWCHAR KeyValue;
+ PWCHAR UserData;
+
+ /* Get default language id */
+ if (!SetupFindFirstLineW (InfFile, L"NLS", L"DefaultLanguage",
&Context))
+ return NULL;
+
+ if (!INF_GetData (&Context, NULL, &KeyValue))
+ return NULL;
+
+ wcscpy(DefaultLanguage, KeyValue);
+
SelectedLanguageId = KeyValue;
- List = CreateGenericList();
- if (List == NULL)
- return NULL;
-
- if (!SetupFindFirstLineW (InfFile, L"Language", NULL, &Context))
- {
- DestroyGenericList(List, FALSE);
- return NULL;
- }
-
- do
- {
- if (!INF_GetData (&Context, &KeyName, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetData() failed\n");
- break;
- }
-
- UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
- 0,
- (wcslen(KeyName) + 1) * sizeof(WCHAR));
- if (UserData == NULL)
- {
- /* FIXME: Handle error! */
- }
-
- wcscpy(UserData, KeyName);
-
- sprintf(Buffer, "%S", KeyValue);
- AppendGenericListEntry(List,
- Buffer,
- UserData,
- _wcsicmp(KeyName, DefaultLanguage) ? FALSE : TRUE);
- }
- while (SetupFindNextLine(&Context, &Context));
-
- return List;
+ List = CreateGenericList();
+ if (List == NULL)
+ return NULL;
+
+ if (!SetupFindFirstLineW (InfFile, L"Language", NULL, &Context))
+ {
+ DestroyGenericList(List, FALSE);
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetData (&Context, &KeyName, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetData() failed\n");
+ break;
+ }
+
+ UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
+ 0,
+ (wcslen(KeyName) + 1) * sizeof(WCHAR));
+ if (UserData == NULL)
+ {
+ /* FIXME: Handle error! */
+ }
+
+ wcscpy(UserData, KeyName);
+
+ sprintf(Buffer, "%S", KeyValue);
+ AppendGenericListEntry(List,
+ Buffer,
+ UserData,
+ _wcsicmp(KeyName, DefaultLanguage) ? FALSE : TRUE);
+ } while (SetupFindNextLine(&Context, &Context));
+
+ return List;
}
PGENERIC_LIST
CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout)
{
- CHAR Buffer[128];
- PGENERIC_LIST List;
- INFCONTEXT Context;
- PWCHAR KeyName;
- PWCHAR KeyValue;
- PWCHAR UserData;
-
- /* Get default layout id */
- if (!SetupFindFirstLineW (InfFile, L"NLS", L"DefaultLayout",
&Context))
- return NULL;
-
- if (!INF_GetData (&Context, NULL, &KeyValue))
- return NULL;
-
- wcscpy(DefaultKBLayout, KeyValue);
-
- List = CreateGenericList();
- if (List == NULL)
- return NULL;
-
- if (!SetupFindFirstLineW (InfFile, L"KeyboardLayout", NULL, &Context))
- {
- DestroyGenericList(List, FALSE);
- return NULL;
- }
-
- do
- {
- if (!INF_GetData (&Context, &KeyName, &KeyValue))
- {
- /* FIXME: Handle error! */
- DPRINT("INF_GetData() failed\n");
- DestroyGenericList(List, FALSE);
- break;
- }
-
- UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
- 0,
- (wcslen(KeyName) + 1) * sizeof(WCHAR));
- if (UserData == NULL)
- {
- /* FIXME: Handle error! */
- }
-
- wcscpy(UserData, KeyName);
-
- sprintf(Buffer, "%S", KeyValue);
- AppendGenericListEntry(List,
- Buffer,
- UserData,
- _wcsicmp(KeyName, DefaultKBLayout) ? FALSE : TRUE);
- }
- while (SetupFindNextLine(&Context, &Context));
-
- return List;
+ CHAR Buffer[128];
+ PGENERIC_LIST List;
+ INFCONTEXT Context;
+ PWCHAR KeyName;
+ PWCHAR KeyValue;
+ PWCHAR UserData;
+
+ /* Get default layout id */
+ if (!SetupFindFirstLineW (InfFile, L"NLS", L"DefaultLayout",
&Context))
+ return NULL;
+
+ if (!INF_GetData (&Context, NULL, &KeyValue))
+ return NULL;
+
+ wcscpy(DefaultKBLayout, KeyValue);
+
+ List = CreateGenericList();
+ if (List == NULL)
+ return NULL;
+
+ if (!SetupFindFirstLineW (InfFile, L"KeyboardLayout", NULL, &Context))
+ {
+ DestroyGenericList(List, FALSE);
+ return NULL;
+ }
+
+ do
+ {
+ if (!INF_GetData (&Context, &KeyName, &KeyValue))
+ {
+ /* FIXME: Handle error! */
+ DPRINT("INF_GetData() failed\n");
+ DestroyGenericList(List, FALSE);
+ break;
+ }
+
+ UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
+ 0,
+ (wcslen(KeyName) + 1) * sizeof(WCHAR));
+
+ if (UserData == NULL)
+ {
+ /* FIXME: Handle error! */
+ }
+
+ wcscpy(UserData, KeyName);
+
+ sprintf(Buffer, "%S", KeyValue);
+ AppendGenericListEntry(List,
+ Buffer,
+ UserData,
+ _wcsicmp(KeyName, DefaultKBLayout) ? FALSE : TRUE);
+ } while (SetupFindNextLine(&Context, &Context));
+
+ return List;
}
BOOLEAN
ProcessKeyboardLayoutRegistry(PGENERIC_LIST List)
{
- PGENERIC_LIST_ENTRY Entry;
- PWCHAR LanguageId;
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING KeyName;
- UNICODE_STRING ValueName;
- HANDLE KeyHandle;
- NTSTATUS Status;
-
- Entry = GetGenericListEntry(List);
- if (Entry == NULL)
- return FALSE;
-
- LanguageId = (PWCHAR)Entry->UserData;
- if (LanguageId == NULL)
- return FALSE;
-
- /* Open the nls language key */
- RtlInitUnicodeString(&KeyName,
-
L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language");
- InitializeObjectAttributes(&ObjectAttributes,
- &KeyName,
- OBJ_CASE_INSENSITIVE,
- NULL,
- NULL);
- Status = NtOpenKey(&KeyHandle,
- KEY_ALL_ACCESS,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- /* Set default language */
- RtlInitUnicodeString(&ValueName,
- L"Default");
- Status = NtSetValueKey (KeyHandle,
- &ValueName,
- 0,
- REG_SZ,
- (PVOID)(LanguageId + 4),
- 8 * sizeof(PWCHAR));
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
- NtClose(KeyHandle);
- return FALSE;
- }
-
- /* Set install language */
- RtlInitUnicodeString(&ValueName,
- L"InstallLanguage");
- Status = NtSetValueKey (KeyHandle,
- &ValueName,
- 0,
- REG_SZ,
- (PVOID)(LanguageId + 4),
- 8 * sizeof(PWCHAR));
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
- NtClose(KeyHandle);
- return FALSE;
- }
-
- NtClose(KeyHandle);
-
- return TRUE;
+ PGENERIC_LIST_ENTRY Entry;
+ PWCHAR LanguageId;
+ OBJECT_ATTRIBUTES ObjectAttributes;
+ UNICODE_STRING KeyName;
+ UNICODE_STRING ValueName;
+ HANDLE KeyHandle;
+ NTSTATUS Status;
+
+ Entry = GetGenericListEntry(List);
+ if (Entry == NULL)
+ return FALSE;
+
+ LanguageId = (PWCHAR)Entry->UserData;
+ if (LanguageId == NULL)
+ return FALSE;
+
+ /* Open the nls language key */
+ RtlInitUnicodeString(&KeyName,
+
L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language");
+
+ InitializeObjectAttributes(&ObjectAttributes,
+ &KeyName,
+ OBJ_CASE_INSENSITIVE,
+ NULL,
+ NULL);
+
+ Status = NtOpenKey(&KeyHandle,
+ KEY_ALL_ACCESS,
+ &ObjectAttributes);
+
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ /* Set default language */
+ RtlInitUnicodeString(&ValueName,
+ L"Default");
+
+ Status = NtSetValueKey(KeyHandle,
+ &ValueName,
+ 0,
+ REG_SZ,
+ (PVOID)(LanguageId + 4),
+ 8 * sizeof(PWCHAR));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
+ NtClose(KeyHandle);
+ return FALSE;
+ }
+
+ /* Set install language */
+ RtlInitUnicodeString(&ValueName,
+ L"InstallLanguage");
+ Status = NtSetValueKey (KeyHandle,
+ &ValueName,
+ 0,
+ REG_SZ,
+ (PVOID)(LanguageId + 4),
+ 8 * sizeof(PWCHAR));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
+ NtClose(KeyHandle);
+ return FALSE;
+ }
+
+ NtClose(KeyHandle);
+
+ return TRUE;
}
@@ -855,7 +865,7 @@
BOOLEAN
ProcessKeyboardLayoutFiles(PGENERIC_LIST List)
{
- return TRUE;
+ return TRUE;
}
#endif