Source code of Windows XP (NT5)
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.

166 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. migdlls.h
  5. Abstract:
  6. Declares the types and interfaces to the migration DLL
  7. interface code. This includes the routines that find the
  8. migration DLLs, routines that execute the DLLs, and
  9. routines to enumerate the DLLs that are valid.
  10. Author:
  11. Jim Schmidt (jimschm) 12-Feb-1998
  12. Revision History:
  13. <alias> <date> <comments>
  14. --*/
  15. #include "plugin.h"
  16. //
  17. // Data structure maintained for each migration DLL
  18. //
  19. typedef struct _tagMIGDLL {
  20. struct _tagMIGDLL *Next;
  21. LONG Id;
  22. PCSTR ProductId;
  23. PVENDORINFO VendorInfo;
  24. PCSTR WorkingDir;
  25. UINT Version;
  26. PCSTR OriginalDir;
  27. PCSTR MigrateInfPath;
  28. BOOL WantsToRunOnNt;
  29. HANDLE MigInfAppend;
  30. PCSTR LastFnName; // used for error messages
  31. } MIGRATION_DLL_PROPS, *PMIGRATION_DLL_PROPS;
  32. typedef struct {
  33. PCSTR ProductId;
  34. PVENDORINFO VendorInfo;
  35. PCSTR CurrentDir;
  36. LONG Id;
  37. PMIGRATION_DLL_PROPS AllDllProps;
  38. } MIGDLL_ENUM, *PMIGDLL_ENUM;
  39. //
  40. // Globals needed by migration DLL code
  41. //
  42. extern BOOL g_UseMigIsol;
  43. //
  44. // Externally called functions
  45. //
  46. BOOL
  47. BeginMigrationDllProcessing (
  48. VOID
  49. );
  50. DWORD
  51. EndMigrationDllProcessing (
  52. IN DWORD Request
  53. );
  54. UINT
  55. ScanPathForMigrationDlls (
  56. IN PCSTR PathSpec,
  57. IN HANDLE CancelEvent, OPTIONAL
  58. OUT PBOOL MatchFound OPTIONAL
  59. );
  60. BOOL
  61. ProcessDll (
  62. IN PMIGDLL_ENUM EnumPtr
  63. );
  64. DWORD
  65. ProcessDllsOnCd (
  66. DWORD Request
  67. );
  68. VOID
  69. RemoveDllFromList (
  70. IN LONG Id
  71. );
  72. DWORD
  73. ProcessAllLocalDlls (
  74. DWORD Request
  75. );
  76. BOOL
  77. UpdateFileSearch (
  78. IN PCSTR FullFileSpec,
  79. IN PCSTR FileOnly
  80. );
  81. UINT
  82. GetMigrationDllCount (
  83. VOID
  84. );
  85. UINT
  86. GetMediaMigrationDllCount (
  87. VOID
  88. );
  89. UINT
  90. GetTotalMigrationDllCount (
  91. VOID
  92. );
  93. BOOL
  94. EnumFirstMigrationDll (
  95. OUT PMIGDLL_ENUM EnumPtr
  96. );
  97. BOOL
  98. EnumNextMigrationDll (
  99. IN OUT PMIGDLL_ENUM EnumPtr
  100. );
  101. typedef struct {
  102. TCHAR Path[MAX_TCHAR_PATH];
  103. //
  104. // Internal enumeration members
  105. //
  106. TCHAR Node[MEMDB_MAX]; // contains MemDb node of suppress value
  107. HKEY Key;
  108. REGVALUE_ENUM eValue;
  109. } PRELOADED_DLL_ENUM, *PPRELOADED_DLL_ENUM;
  110. BOOL
  111. EnumFirstPreLoadedDll (
  112. OUT PPRELOADED_DLL_ENUM e
  113. );
  114. BOOL
  115. EnumNextPreLoadedDll (
  116. IN OUT PPRELOADED_DLL_ENUM e
  117. );
  118. VOID
  119. AbortPreLoadedDllEnum (
  120. IN OUT PPRELOADED_DLL_ENUM e
  121. );