167 lines
2.5 KiB
C
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
|
|
);
|
|
|
|
|