mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.0 KiB
108 lines
2.0 KiB
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Spupgcfg.h
|
|
|
|
Abstract:
|
|
|
|
Configuration routines for the upgrade case
|
|
|
|
Author:
|
|
|
|
Sunil Pai (sunilp) 18-Nov-1993
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
//
|
|
// data types
|
|
//
|
|
typedef struct {
|
|
PWSTR SectionName;
|
|
DWORD SectionFlags;
|
|
DWORD VerLow;
|
|
DWORD VerHigh;
|
|
} RootDevnodeSectionNamesType;
|
|
|
|
#define RootDevnodeSectionNamesType_NTUPG (0x0001)
|
|
#define RootDevnodeSectionNamesType_W9xUPG (0x0002)
|
|
#define RootDevnodeSectionNamesType_CLEAN (0x0004)
|
|
#define RootDevnodeSectionNamesType_ALL (0x0007)
|
|
|
|
|
|
//
|
|
// Public routines
|
|
//
|
|
NTSTATUS
|
|
SpUpgradeNTRegistry(
|
|
IN PVOID SifHandle,
|
|
IN HANDLE *HiveRootKeys,
|
|
IN LPCWSTR SetupSourceDevicePath,
|
|
IN LPCWSTR DirectoryOnSourceDevice,
|
|
IN HANDLE hKeyCCSet
|
|
);
|
|
|
|
BOOLEAN
|
|
SpHivesFromInfs(
|
|
IN PVOID SifHandle,
|
|
IN LPCWSTR SectionName,
|
|
IN LPCWSTR SourcePath1,
|
|
IN LPCWSTR SourcePath2, OPTIONAL
|
|
IN HANDLE SystemHiveRoot,
|
|
IN HANDLE SoftwareHiveRoot,
|
|
IN HANDLE DefaultUserHiveRoot,
|
|
IN HANDLE HKR
|
|
);
|
|
|
|
VOID
|
|
SpDeleteRootDevnodeKeys(
|
|
IN PVOID SifHandle,
|
|
IN HANDLE hKeyCCSet,
|
|
IN PWSTR DevicesToDelete,
|
|
IN RootDevnodeSectionNamesType *DeviceClassesToDelete
|
|
);
|
|
|
|
//
|
|
// Private routines
|
|
//
|
|
NTSTATUS
|
|
SppDeleteKeyRecursive(
|
|
HANDLE hKeyRoot,
|
|
PWSTR Key,
|
|
BOOLEAN ThisKeyToo
|
|
);
|
|
|
|
NTSTATUS
|
|
SppCopyKeyRecursive(
|
|
HANDLE hKeyRootSrc,
|
|
HANDLE hKeyRootDst,
|
|
PWSTR SrcKeyPath,
|
|
PWSTR DstKeyPath,
|
|
BOOLEAN CopyAlways,
|
|
BOOLEAN ApplyACLsAlways
|
|
);
|
|
|
|
|
|
//
|
|
// Callback routine for SpApplyFunctionToDeviceInstanceKeys
|
|
//
|
|
typedef VOID (*PSPP_INSTANCEKEY_CALLBACK_ROUTINE) (
|
|
IN HANDLE SetupInstanceKeyHandle,
|
|
IN HANDLE UpgradeInstanceKeyHandle,
|
|
IN BOOLEAN RootEnumerated,
|
|
IN OUT PVOID Context
|
|
);
|
|
|
|
VOID
|
|
SpApplyFunctionToDeviceInstanceKeys(
|
|
IN HANDLE hKeyCCSet,
|
|
IN PSPP_INSTANCEKEY_CALLBACK_ROUTINE InstanceKeyCallbackRoutine,
|
|
IN OUT PVOID Context
|
|
);
|
|
|