|
|
/*++
Copyright (c) 1990, 1991 Microsoft Corporation
Module Name:
init.c
Abstract:
This module is responsible to build any mips specific entries in the hardware tree of registry which the arc environment doesn't normally provide for.
Author:
Ken Reneris (kenr) 04-Aug-1992
Environment:
Kernel mode.
Revision History:
Nigel Haslock 10-Oct-1995 Set up firmware version and possibly date in the registry.
--*/
#include "cmp.h"
#define TITLE_INDEX_VALUE 0
NTSTATUS CmpInitializeMachineDependentConfiguration( IN PLOADER_PARAMETER_BLOCK LoaderBlock ) /*++
Routine Description:
This routine creates alpha specific entries in the registry.
Arguments:
LoaderBlock - supplies a pointer to the LoaderBlock passed in from the OS Loader.
Returns:
NTSTATUS code for sucess or reason of failure.
--*/
{
NTSTATUS Status; UNICODE_STRING KeyName; UNICODE_STRING ValueName; UNICODE_STRING ValueData; ANSI_STRING AnsiString; OBJECT_ATTRIBUTES ObjectAttributes; HANDLE ParentHandle;
InitializeObjectAttributes(&ObjectAttributes, &CmRegistryMachineHardwareDescriptionSystemName, OBJ_CASE_INSENSITIVE, NULL, NULL);
Status = NtOpenKey(&ParentHandle, KEY_READ, &ObjectAttributes);
if (NT_SUCCESS(Status)) { RtlInitUnicodeString(&ValueName, L"SystemBiosVersion");
RtlInitAnsiString(&AnsiString, &LoaderBlock->u.Alpha.FirmwareVersion[0]);
RtlAnsiStringToUnicodeString(&ValueData, &AnsiString, TRUE);
Status = NtSetValueKey(ParentHandle, &ValueName, TITLE_INDEX_VALUE, REG_SZ, ValueData.Buffer, ValueData.Length + sizeof(UNICODE_NULL));
RtlFreeUnicodeString(&ValueData);
//
// If the firmware build number is included in the loader block,
// then store it in the registry.
//
if (LoaderBlock->u.Alpha.FirmwareBuildTimeStamp[0] != 0 ) { RtlInitUnicodeString(&ValueName, L"SystemBiosDate");
RtlInitAnsiString(&AnsiString, &LoaderBlock->u.Alpha.FirmwareBuildTimeStamp[0]);
RtlAnsiStringToUnicodeString(&ValueData, &AnsiString, TRUE);
Status = NtSetValueKey(ParentHandle, &ValueName, TITLE_INDEX_VALUE, REG_SZ, ValueData.Buffer, ValueData.Length + sizeof(UNICODE_NULL));
RtlFreeUnicodeString(&ValueData); } }
return STATUS_SUCCESS; }
|