windows-nt/Source/XPSP1/NT/base/ntos/config/alpha/init.c
2020-09-26 16:20:57 +08:00

126 lines
2.9 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
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;
}