mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 02:41:22 +00:00
- Start filling out ARC component data nodes for all the new refactored hardware node APIs (these are just dummies for now).
svn path=/trunk/; revision=31114
This commit is contained in:
parent
0e2f7faae4
commit
35d35bd7e9
6 changed files with 177 additions and 11 deletions
|
@ -275,7 +275,12 @@ DetectPnpBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
DbgPrint((DPRINT_HWDETECT, "Estimated buffer size %u\n", NodeSize * NodeCount));
|
DbgPrint((DPRINT_HWDETECT, "Estimated buffer size %u\n", NodeSize * NodeCount));
|
||||||
|
|
||||||
/* Create component key */
|
/* Create component key */
|
||||||
FldrCreateComponentKey(SystemKey, L"MultifunctionAdapter", *BusNumber, &BusKey);
|
FldrCreateComponentKey(SystemKey,
|
||||||
|
L"MultifunctionAdapter",
|
||||||
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
|
&BusKey);
|
||||||
(*BusNumber)++;
|
(*BusNumber)++;
|
||||||
|
|
||||||
/* Set the component information */
|
/* Set the component information */
|
||||||
|
@ -605,6 +610,8 @@ DetectBiosDisks(FRLDRHKEY SystemKey,
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"DiskController\\0\\DiskPeripheral",
|
L"DiskController\\0\\DiskPeripheral",
|
||||||
i,
|
i,
|
||||||
|
PeripheralClass,
|
||||||
|
DiskPeripheral,
|
||||||
&DiskKey);
|
&DiskKey);
|
||||||
|
|
||||||
/* Set disk values */
|
/* Set disk values */
|
||||||
|
@ -681,6 +688,8 @@ DetectBiosFloppyPeripheral(FRLDRHKEY ControllerKey)
|
||||||
FldrCreateComponentKey(ControllerKey,
|
FldrCreateComponentKey(ControllerKey,
|
||||||
L"FloppyDiskPeripheral",
|
L"FloppyDiskPeripheral",
|
||||||
FloppyNumber,
|
FloppyNumber,
|
||||||
|
PeripheralClass,
|
||||||
|
FloppyDiskPeripheral,
|
||||||
&PeripheralKey);
|
&PeripheralKey);
|
||||||
|
|
||||||
/* Set 'ComponentInformation' value */
|
/* Set 'ComponentInformation' value */
|
||||||
|
@ -754,6 +763,8 @@ DetectBiosFloppyController(FRLDRHKEY SystemKey,
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"DiskController",
|
L"DiskController",
|
||||||
0,
|
0,
|
||||||
|
ControllerClass,
|
||||||
|
DiskController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: DiskController\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: DiskController\\0\n"));
|
||||||
|
|
||||||
|
@ -1130,6 +1141,8 @@ DetectSerialPointerPeripheral(FRLDRHKEY ControllerKey,
|
||||||
FldrCreateComponentKey(ControllerKey,
|
FldrCreateComponentKey(ControllerKey,
|
||||||
L"PointerPeripheral",
|
L"PointerPeripheral",
|
||||||
0,
|
0,
|
||||||
|
PeripheralClass,
|
||||||
|
PointerPeripheral,
|
||||||
&PeripheralKey);
|
&PeripheralKey);
|
||||||
DbgPrint((DPRINT_HWDETECT,
|
DbgPrint((DPRINT_HWDETECT,
|
||||||
"Created key: PointerPeripheral\\0\n"));
|
"Created key: PointerPeripheral\\0\n"));
|
||||||
|
@ -1193,6 +1206,8 @@ DetectSerialPorts(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"SerialController",
|
L"SerialController",
|
||||||
ControllerNumber,
|
ControllerNumber,
|
||||||
|
ControllerClass,
|
||||||
|
SerialController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
|
|
||||||
/* Set 'ComponentInformation' value */
|
/* Set 'ComponentInformation' value */
|
||||||
|
@ -1305,6 +1320,8 @@ DetectParallelPorts(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"ParallelController",
|
L"ParallelController",
|
||||||
ControllerNumber,
|
ControllerNumber,
|
||||||
|
ControllerClass,
|
||||||
|
ParallelController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
|
|
||||||
/* Set 'ComponentInformation' value */
|
/* Set 'ComponentInformation' value */
|
||||||
|
@ -1460,6 +1477,8 @@ DetectKeyboardPeripheral(FRLDRHKEY ControllerKey)
|
||||||
FldrCreateComponentKey(ControllerKey,
|
FldrCreateComponentKey(ControllerKey,
|
||||||
L"KeyboardPeripheral",
|
L"KeyboardPeripheral",
|
||||||
0,
|
0,
|
||||||
|
PeripheralClass,
|
||||||
|
KeyboardPeripheral,
|
||||||
&PeripheralKey);
|
&PeripheralKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: KeyboardPeripheral\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: KeyboardPeripheral\\0\n"));
|
||||||
|
|
||||||
|
@ -1522,6 +1541,8 @@ DetectKeyboardController(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"KeyboardController",
|
L"KeyboardController",
|
||||||
0,
|
0,
|
||||||
|
ControllerClass,
|
||||||
|
KeyboardController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: KeyboardController\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: KeyboardController\\0\n"));
|
||||||
|
|
||||||
|
@ -1709,6 +1730,8 @@ DetectPS2Mouse(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"PointerController",
|
L"PointerController",
|
||||||
0,
|
0,
|
||||||
|
ControllerClass,
|
||||||
|
PointerController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: PointerController\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: PointerController\\0\n"));
|
||||||
|
|
||||||
|
@ -1746,8 +1769,10 @@ DetectPS2Mouse(FRLDRHKEY BusKey)
|
||||||
|
|
||||||
/* Create peripheral key */
|
/* Create peripheral key */
|
||||||
FldrCreateComponentKey(ControllerKey,
|
FldrCreateComponentKey(ControllerKey,
|
||||||
L"PointerController",
|
L"PointerPeripheral",
|
||||||
0,
|
0,
|
||||||
|
ControllerClass,
|
||||||
|
PointerPeripheral,
|
||||||
&PeripheralKey);
|
&PeripheralKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: PointerPeripheral\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: PointerPeripheral\\0\n"));
|
||||||
|
|
||||||
|
@ -1788,6 +1813,8 @@ DetectDisplayController(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"DisplayController",
|
L"DisplayController",
|
||||||
0,
|
0,
|
||||||
|
ControllerClass,
|
||||||
|
DisplayController,
|
||||||
&ControllerKey);
|
&ControllerKey);
|
||||||
DbgPrint((DPRINT_HWDETECT, "Created key: DisplayController\\0\n"));
|
DbgPrint((DPRINT_HWDETECT, "Created key: DisplayController\\0\n"));
|
||||||
|
|
||||||
|
@ -1842,6 +1869,8 @@ DetectIsaBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"MultifunctionAdapter",
|
L"MultifunctionAdapter",
|
||||||
*BusNumber,
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
&BusKey);
|
&BusKey);
|
||||||
|
|
||||||
/* Set 'Component Information' value similar to my NT4 box */
|
/* Set 'Component Information' value similar to my NT4 box */
|
||||||
|
|
|
@ -61,6 +61,8 @@ DetectAcpiBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"MultifunctionAdapter",
|
L"MultifunctionAdapter",
|
||||||
*BusNumber,
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
&BiosKey);
|
&BiosKey);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -64,6 +64,8 @@ DetectApmBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"MultifunctionAdapter",
|
L"MultifunctionAdapter",
|
||||||
*BusNumber,
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
&BiosKey);
|
&BiosKey);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -156,6 +156,8 @@ DetectPciIrqRoutingTable(FRLDRHKEY BusKey)
|
||||||
FldrCreateComponentKey(BusKey,
|
FldrCreateComponentKey(BusKey,
|
||||||
L"RealModeIrqRoutingTable",
|
L"RealModeIrqRoutingTable",
|
||||||
0,
|
0,
|
||||||
|
SystemClass,
|
||||||
|
RealModeIrqRoutingTable,
|
||||||
&TableKey);
|
&TableKey);
|
||||||
|
|
||||||
/* Set 'Component Information' */
|
/* Set 'Component Information' */
|
||||||
|
@ -228,6 +230,8 @@ DetectPciBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"MultifunctionAdapter",
|
L"MultifunctionAdapter",
|
||||||
*BusNumber,
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
&BiosKey);
|
&BiosKey);
|
||||||
|
|
||||||
/* Set 'Component Information' */
|
/* Set 'Component Information' */
|
||||||
|
@ -283,6 +287,8 @@ DetectPciBios(FRLDRHKEY SystemKey, ULONG *BusNumber)
|
||||||
FldrCreateComponentKey(SystemKey,
|
FldrCreateComponentKey(SystemKey,
|
||||||
L"MultifunctionAdapter",
|
L"MultifunctionAdapter",
|
||||||
*BusNumber,
|
*BusNumber,
|
||||||
|
AdapterClass,
|
||||||
|
MultiFunctionAdapter,
|
||||||
&BiosKey);
|
&BiosKey);
|
||||||
|
|
||||||
/* Set 'Component Information' */
|
/* Set 'Component Information' */
|
||||||
|
|
|
@ -59,6 +59,8 @@ FldrCreateComponentKey(
|
||||||
IN FRLDRHKEY SystemKey,
|
IN FRLDRHKEY SystemKey,
|
||||||
IN PWCHAR BusName,
|
IN PWCHAR BusName,
|
||||||
IN ULONG BusNumber,
|
IN ULONG BusNumber,
|
||||||
|
IN CONFIGURATION_CLASS Class,
|
||||||
|
IN CONFIGURATION_TYPE Type,
|
||||||
OUT FRLDRHKEY *ComponentKey
|
OUT FRLDRHKEY *ComponentKey
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,67 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* GLOBALS ********************************************************************/
|
||||||
|
|
||||||
|
PCONFIGURATION_COMPONENT_DATA FldrArcHwTreeRoot;
|
||||||
|
ULONG FldrBusTypeCount[MaximumType + 1] = {0};
|
||||||
|
const PWCHAR FldrBusTypeString[MaximumType + 1] =
|
||||||
|
{
|
||||||
|
L"System",
|
||||||
|
L"CentralProcessor",
|
||||||
|
L"FloatingPointProcessor",
|
||||||
|
L"PrimaryICache",
|
||||||
|
L"PrimaryDCache",
|
||||||
|
L"SecondaryICache",
|
||||||
|
L"SecondaryDCache",
|
||||||
|
L"SecondaryCache",
|
||||||
|
L"EisaAdapter",
|
||||||
|
L"TcAdapter",
|
||||||
|
L"ScsiAdapter",
|
||||||
|
L"DtiAdapter",
|
||||||
|
L"MultifunctionAdapter",
|
||||||
|
L"DiskController",
|
||||||
|
L"TapeController",
|
||||||
|
L"CdRomController",
|
||||||
|
L"WormController",
|
||||||
|
L"SerialController",
|
||||||
|
L"NetworkController",
|
||||||
|
L"DisplayController",
|
||||||
|
L"ParallelController",
|
||||||
|
L"PointerController",
|
||||||
|
L"KeyboardController",
|
||||||
|
L"AudioController",
|
||||||
|
L"OtherController",
|
||||||
|
L"DiskPeripheral",
|
||||||
|
L"FloppyDiskPeripheral",
|
||||||
|
L"TapePeripheral",
|
||||||
|
L"ModemPeripheral",
|
||||||
|
L"MonitorPeripheral",
|
||||||
|
L"PrinterPeripheral",
|
||||||
|
L"PointerPeripheral",
|
||||||
|
L"KeyboardPeripheral",
|
||||||
|
L"TerminalPeripheral",
|
||||||
|
L"OtherPeripheral",
|
||||||
|
L"LinePeripheral",
|
||||||
|
L"NetworkPeripheral",
|
||||||
|
L"SystemMemory",
|
||||||
|
L"DockingInformation",
|
||||||
|
L"RealModeIrqRoutingTable",
|
||||||
|
L"RealModePCIEnumeration",
|
||||||
|
L"Undefined"
|
||||||
|
};
|
||||||
|
const PWCHAR FldrClassString[MaximumClass + 1] =
|
||||||
|
{
|
||||||
|
L"System",
|
||||||
|
L"Processor",
|
||||||
|
L"Cache",
|
||||||
|
L"Adapter",
|
||||||
|
L"Controller",
|
||||||
|
L"Peripheral",
|
||||||
|
L"MemoryClass",
|
||||||
|
L"Undefined"
|
||||||
|
};
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -21,21 +82,23 @@ FldrSetComponentInformation(IN FRLDRHKEY ComponentKey,
|
||||||
IN ULONG Key,
|
IN ULONG Key,
|
||||||
IN ULONG Affinity)
|
IN ULONG Affinity)
|
||||||
{
|
{
|
||||||
CONFIGURATION_COMPONENT ConfigurationComponent;
|
|
||||||
LONG Error;
|
LONG Error;
|
||||||
|
CONFIGURATION_COMPONENT_DATA Data = {0}; // This would be "ComponentKey"
|
||||||
|
PCONFIGURATION_COMPONENT_DATA ComponentData = &Data;
|
||||||
|
PCONFIGURATION_COMPONENT Component = &ComponentData->ComponentEntry;
|
||||||
|
|
||||||
/* Build the component information */
|
/* Set component information */
|
||||||
ConfigurationComponent.Flags = Flags;
|
Component->Flags = Flags;
|
||||||
ConfigurationComponent.Version = 0;
|
Component->Version = 0;
|
||||||
ConfigurationComponent.Revision = 0;
|
Component->Revision = 0;
|
||||||
ConfigurationComponent.Key = Key;
|
Component->Key = Key;
|
||||||
ConfigurationComponent.AffinityMask = Affinity;
|
Component->AffinityMask = Affinity;
|
||||||
|
|
||||||
/* Set the value */
|
/* Set the value */
|
||||||
Error = RegSetValue(ComponentKey,
|
Error = RegSetValue(ComponentKey,
|
||||||
L"Component Information",
|
L"Component Information",
|
||||||
REG_BINARY,
|
REG_BINARY,
|
||||||
(PVOID)&ConfigurationComponent.Flags,
|
(PVOID)&Component->Flags,
|
||||||
FIELD_OFFSET(CONFIGURATION_COMPONENT, ConfigurationDataLength) -
|
FIELD_OFFSET(CONFIGURATION_COMPONENT, ConfigurationDataLength) -
|
||||||
FIELD_OFFSET(CONFIGURATION_COMPONENT, Flags));
|
FIELD_OFFSET(CONFIGURATION_COMPONENT, Flags));
|
||||||
if (Error != ERROR_SUCCESS)
|
if (Error != ERROR_SUCCESS)
|
||||||
|
@ -51,7 +114,14 @@ FldrSetIdentifier(IN FRLDRHKEY ComponentKey,
|
||||||
{
|
{
|
||||||
LONG Error;
|
LONG Error;
|
||||||
ULONG IdentifierLength = (wcslen(Identifier) + 1) * sizeof(WCHAR);
|
ULONG IdentifierLength = (wcslen(Identifier) + 1) * sizeof(WCHAR);
|
||||||
|
CONFIGURATION_COMPONENT_DATA Data = {0}; // This would be "ComponentKey"
|
||||||
|
PCONFIGURATION_COMPONENT_DATA ComponentData = &Data;
|
||||||
|
PCONFIGURATION_COMPONENT Component = &ComponentData->ComponentEntry;
|
||||||
|
|
||||||
|
/* Set component information */
|
||||||
|
Component->IdentifierLength = IdentifierLength;
|
||||||
|
Component->Identifier = (PCHAR)Identifier; // We need to use ASCII instead
|
||||||
|
|
||||||
/* Set the key */
|
/* Set the key */
|
||||||
Error = RegSetValue(ComponentKey,
|
Error = RegSetValue(ComponentKey,
|
||||||
L"Identifier",
|
L"Identifier",
|
||||||
|
@ -70,6 +140,22 @@ NTAPI
|
||||||
FldrCreateSystemKey(OUT FRLDRHKEY *SystemKey)
|
FldrCreateSystemKey(OUT FRLDRHKEY *SystemKey)
|
||||||
{
|
{
|
||||||
LONG Error;
|
LONG Error;
|
||||||
|
PCONFIGURATION_COMPONENT Component;
|
||||||
|
|
||||||
|
/* Allocate the root */
|
||||||
|
FldrArcHwTreeRoot = MmAllocateMemory(sizeof(CONFIGURATION_COMPONENT_DATA));
|
||||||
|
if (!FldrArcHwTreeRoot) return;
|
||||||
|
|
||||||
|
/* Set it up */
|
||||||
|
Component = &FldrArcHwTreeRoot->ComponentEntry;
|
||||||
|
Component->Class = SystemClass;
|
||||||
|
Component->Type = MaximumType;
|
||||||
|
Component->Version = 0;
|
||||||
|
Component->Key = 0;
|
||||||
|
Component->AffinityMask = 0;
|
||||||
|
Component->ConfigurationDataLength = 0;
|
||||||
|
Component->Identifier = 0;
|
||||||
|
Component->IdentifierLength = 0;
|
||||||
|
|
||||||
/* Create the key */
|
/* Create the key */
|
||||||
Error = RegCreateKey(NULL,
|
Error = RegCreateKey(NULL,
|
||||||
|
@ -79,7 +165,7 @@ FldrCreateSystemKey(OUT FRLDRHKEY *SystemKey)
|
||||||
{
|
{
|
||||||
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", Error));
|
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", Error));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -87,10 +173,42 @@ NTAPI
|
||||||
FldrCreateComponentKey(IN FRLDRHKEY SystemKey,
|
FldrCreateComponentKey(IN FRLDRHKEY SystemKey,
|
||||||
IN PWCHAR BusName,
|
IN PWCHAR BusName,
|
||||||
IN ULONG BusNumber,
|
IN ULONG BusNumber,
|
||||||
|
IN CONFIGURATION_CLASS Class,
|
||||||
|
IN CONFIGURATION_TYPE Type,
|
||||||
OUT FRLDRHKEY *ComponentKey)
|
OUT FRLDRHKEY *ComponentKey)
|
||||||
{
|
{
|
||||||
LONG Error;
|
LONG Error;
|
||||||
WCHAR Buffer[80];
|
WCHAR Buffer[80];
|
||||||
|
CONFIGURATION_COMPONENT_DATA Root = {0}; // This would be "SystemKey"
|
||||||
|
PCONFIGURATION_COMPONENT_DATA SystemNode = &Root;
|
||||||
|
PCONFIGURATION_COMPONENT_DATA ComponentData;
|
||||||
|
PCONFIGURATION_COMPONENT Component;
|
||||||
|
|
||||||
|
/* Allocate the node for this component */
|
||||||
|
ComponentData = MmAllocateMemory(sizeof(CONFIGURATION_COMPONENT_DATA));
|
||||||
|
if (!ComponentData) return;
|
||||||
|
|
||||||
|
/* Now save our parent */
|
||||||
|
ComponentData->Parent = SystemNode;
|
||||||
|
|
||||||
|
/* Now we need to figure out if the parent already has a child entry */
|
||||||
|
if (SystemNode->Child)
|
||||||
|
{
|
||||||
|
/* It does, so we'll be a sibling of the child instead */
|
||||||
|
SystemNode->Child->Sibling = ComponentData;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* It doesn't, so we will be the first child */
|
||||||
|
SystemNode->Child = ComponentData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set us up (need to use class/type instead of name/number) */
|
||||||
|
Component = &FldrArcHwTreeRoot->ComponentEntry;
|
||||||
|
Component->Class = Class;
|
||||||
|
Component->Type = Type;
|
||||||
|
|
||||||
|
/* FIXME: Use Class/Type to build key name */
|
||||||
|
|
||||||
/* Build the key name */
|
/* Build the key name */
|
||||||
swprintf(Buffer, L"%s\\%u", BusName, BusNumber);
|
swprintf(Buffer, L"%s\\%u", BusName, BusNumber);
|
||||||
|
@ -111,6 +229,13 @@ FldrSetConfigurationData(IN FRLDRHKEY ComponentKey,
|
||||||
IN ULONG Size)
|
IN ULONG Size)
|
||||||
{
|
{
|
||||||
LONG Error;
|
LONG Error;
|
||||||
|
CONFIGURATION_COMPONENT_DATA Data = {0}; // This would be "ComponentKey"
|
||||||
|
PCONFIGURATION_COMPONENT_DATA ComponentData = &Data;
|
||||||
|
PCONFIGURATION_COMPONENT Component = &ComponentData->ComponentEntry;
|
||||||
|
|
||||||
|
/* Set component information */
|
||||||
|
ComponentData->ConfigurationData = ConfigurationData;
|
||||||
|
Component->ConfigurationDataLength = Size;
|
||||||
|
|
||||||
/* Set 'Configuration Data' value */
|
/* Set 'Configuration Data' value */
|
||||||
Error = RegSetValue(ComponentKey,
|
Error = RegSetValue(ComponentKey,
|
||||||
|
|
Loading…
Reference in a new issue