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.

76 lines
2.9 KiB

  1. // ----------------------------------------------------------------------------------
  2. // V3.1 Backend Server Apis
  3. //
  4. //
  5. class CDynamicUpdate; // forward declare the CDynamicUpdate class defined in wsdueng.h
  6. #define CATALOGINIFN "catalog.ini"
  7. #define GUIDRVINF "guidrvs.inf"
  8. typedef enum
  9. {
  10. enWhistlerConsumer = 90934, // VER_SUITE_PERSONAL
  11. enWhistlerProfessional = 90935, // 0
  12. enWhistlerServer = 90936, // VER_SUITE_SMALLBUSINESS
  13. enWhistlerAdvancedServer = 90937, // VER_SUITE_ENTERPRISE
  14. enWhistlerDataCenter = 90938, // VER_SUITE_DATACENTER
  15. } enumPlatformSKUs;
  16. class CV31Server
  17. {
  18. public:
  19. CV31Server(CDynamicUpdate *pDu);
  20. ~CV31Server();
  21. public:
  22. BOOL ReadIdentInfo(void);
  23. BOOL ReadCatalogINI(void);
  24. BOOL ReadGuidrvINF(void);
  25. BOOL GetCatalogPUIDs(void);
  26. BOOL GetCatalogs(void);
  27. BOOL UpdateDownloadItemList(OSVERSIONINFOEX& VersionInfo);
  28. void FreeCatalogs(void);
  29. BOOL MakeDependentList(OSVERSIONINFOEX& VersionInfo, CCRCMapFile *pMapFile);
  30. BOOL IsDependencyApply(PUID puid);
  31. BOOL GetBitMask(LPSTR szBitmapServerFileName, PUID nDirectoryPuid, PBYTE* pByte, LPSTR szDecompressedName);
  32. BOOL IsPUIDExcluded(PUID nPuid);
  33. BOOL IsDriverExcluded(LPCSTR szWHQLId, LPCSTR szHardwareId);
  34. BOOL GetAltName(LPCSTR szCabName, LPSTR szAltName, int nSize);
  35. public:
  36. // Catalog Parsing Functions
  37. PBYTE GetNextRecord(PBYTE pRecord, int iBitmaskIndex, PINVENTORY_ITEM pItem);
  38. int GetRecordType(PINVENTORY_ITEM pItem);
  39. BOOL ReadDescription(PINVENTORY_ITEM pItem, CCRCMapFile *pMapFile);
  40. public:
  41. PUID m_puidConsumerCatalog;
  42. PUID m_puidSetupCatalog;
  43. DWORD m_dwPlatformID;
  44. enumPlatformSKUs m_enumPlatformSKU;
  45. LCID m_lcidLocaleID;
  46. DWORD m_dwConsumerItemCount;
  47. Varray<PINVENTORY_ITEM> m_pConsumerItems; //array of consumer catalog items
  48. PBYTE m_pConsumerCatalog; //in memory view of the Consumer Catalog.
  49. DWORD m_dwSetupItemCount;
  50. Varray<PINVENTORY_ITEM> m_pSetupItems; //array of setup catalog items
  51. PBYTE m_pSetupCatalog; //in memory view of the setup catalog
  52. DWORD m_dwGlobalExclusionItemCount;
  53. Varray<PUID> m_GlobalExclusionArray; //array of PUID's that are excluded
  54. PUID* m_pValidDependentPUIDArray; // array of PUIDs that is valid for dependent item on this version
  55. int m_nNumOfValidDependentPUID;
  56. PBYTE m_pBitMaskAS; // bitmask for Setup
  57. PBYTE m_pBitMaskCDM; // bitmask for Driver
  58. CDynamicUpdate *m_pDu;
  59. BOOL m_fHasDriver;
  60. LPSTR m_pszExcludedDriver;
  61. // Server Ident Paths
  62. char m_szCabPoolUrl[INTERNET_MAX_URL_LENGTH + 1];
  63. char m_szV31ContentUrl[INTERNET_MAX_URL_LENGTH + 1];
  64. char m_szV31RootUrl[INTERNET_MAX_URL_LENGTH + 1];
  65. };