windows-nt/Source/XPSP1/NT/base/ntsetup/win95upg/inc/migdlls.h
2020-09-26 16:20:57 +08:00

167 lines
2.5 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
migdlls.h
Abstract:
Declares the types and interfaces to the migration DLL
interface code. This includes the routines that find the
migration DLLs, routines that execute the DLLs, and
routines to enumerate the DLLs that are valid.
Author:
Jim Schmidt (jimschm) 12-Feb-1998
Revision History:
<alias> <date> <comments>
--*/
#include "plugin.h"
//
// Data structure maintained for each migration DLL
//
typedef struct _tagMIGDLL {
struct _tagMIGDLL *Next;
LONG Id;
PCSTR ProductId;
PVENDORINFO VendorInfo;
PCSTR WorkingDir;
UINT Version;
PCSTR OriginalDir;
PCSTR MigrateInfPath;
BOOL WantsToRunOnNt;
HANDLE MigInfAppend;
PCSTR LastFnName; // used for error messages
} MIGRATION_DLL_PROPS, *PMIGRATION_DLL_PROPS;
typedef struct {
PCSTR ProductId;
PVENDORINFO VendorInfo;
PCSTR CurrentDir;
LONG Id;
PMIGRATION_DLL_PROPS AllDllProps;
} MIGDLL_ENUM, *PMIGDLL_ENUM;
//
// Globals needed by migration DLL code
//
extern BOOL g_UseMigIsol;
//
// Externally called functions
//
BOOL
BeginMigrationDllProcessing (
VOID
);
DWORD
EndMigrationDllProcessing (
IN DWORD Request
);
UINT
ScanPathForMigrationDlls (
IN PCSTR PathSpec,
IN HANDLE CancelEvent, OPTIONAL
OUT PBOOL MatchFound OPTIONAL
);
BOOL
ProcessDll (
IN PMIGDLL_ENUM EnumPtr
);
DWORD
ProcessDllsOnCd (
DWORD Request
);
VOID
RemoveDllFromList (
IN LONG Id
);
DWORD
ProcessAllLocalDlls (
DWORD Request
);
BOOL
UpdateFileSearch (
IN PCSTR FullFileSpec,
IN PCSTR FileOnly
);
UINT
GetMigrationDllCount (
VOID
);
UINT
GetMediaMigrationDllCount (
VOID
);
UINT
GetTotalMigrationDllCount (
VOID
);
BOOL
EnumFirstMigrationDll (
OUT PMIGDLL_ENUM EnumPtr
);
BOOL
EnumNextMigrationDll (
IN OUT PMIGDLL_ENUM EnumPtr
);
typedef struct {
TCHAR Path[MAX_TCHAR_PATH];
//
// Internal enumeration members
//
TCHAR Node[MEMDB_MAX]; // contains MemDb node of suppress value
HKEY Key;
REGVALUE_ENUM eValue;
} PRELOADED_DLL_ENUM, *PPRELOADED_DLL_ENUM;
BOOL
EnumFirstPreLoadedDll (
OUT PPRELOADED_DLL_ENUM e
);
BOOL
EnumNextPreLoadedDll (
IN OUT PPRELOADED_DLL_ENUM e
);
VOID
AbortPreLoadedDllEnum (
IN OUT PPRELOADED_DLL_ENUM e
);