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

// ----------------------------------------------------------------------------------
// V3.1 Backend Server Apis
//
//
class CDynamicUpdate; // forward declare the CDynamicUpdate class defined in wsdueng.h
#define CATALOGINIFN "catalog.ini"
#define GUIDRVINF "guidrvs.inf"
typedef enum
{
enWhistlerConsumer = 90934, // VER_SUITE_PERSONAL
enWhistlerProfessional = 90935, // 0
enWhistlerServer = 90936, // VER_SUITE_SMALLBUSINESS
enWhistlerAdvancedServer = 90937, // VER_SUITE_ENTERPRISE
enWhistlerDataCenter = 90938, // VER_SUITE_DATACENTER
} enumPlatformSKUs;
class CV31Server
{
public:
CV31Server(CDynamicUpdate *pDu);
~CV31Server();
public:
BOOL ReadIdentInfo(void);
BOOL ReadCatalogINI(void);
BOOL ReadGuidrvINF(void);
BOOL GetCatalogPUIDs(void);
BOOL GetCatalogs(void);
BOOL UpdateDownloadItemList(OSVERSIONINFOEX& VersionInfo);
void FreeCatalogs(void);
BOOL MakeDependentList(OSVERSIONINFOEX& VersionInfo, CCRCMapFile *pMapFile);
BOOL IsDependencyApply(PUID puid);
BOOL GetBitMask(LPSTR szBitmapServerFileName, PUID nDirectoryPuid, PBYTE* pByte, LPSTR szDecompressedName);
BOOL IsPUIDExcluded(PUID nPuid);
BOOL IsDriverExcluded(LPCSTR szWHQLId, LPCSTR szHardwareId);
BOOL GetAltName(LPCSTR szCabName, LPSTR szAltName, int nSize);
public:
// Catalog Parsing Functions
PBYTE GetNextRecord(PBYTE pRecord, int iBitmaskIndex, PINVENTORY_ITEM pItem);
int GetRecordType(PINVENTORY_ITEM pItem);
BOOL ReadDescription(PINVENTORY_ITEM pItem, CCRCMapFile *pMapFile);
public:
PUID m_puidConsumerCatalog;
PUID m_puidSetupCatalog;
DWORD m_dwPlatformID;
enumPlatformSKUs m_enumPlatformSKU;
LCID m_lcidLocaleID;
DWORD m_dwConsumerItemCount;
Varray<PINVENTORY_ITEM> m_pConsumerItems; //array of consumer catalog items
PBYTE m_pConsumerCatalog; //in memory view of the Consumer Catalog.
DWORD m_dwSetupItemCount;
Varray<PINVENTORY_ITEM> m_pSetupItems; //array of setup catalog items
PBYTE m_pSetupCatalog; //in memory view of the setup catalog
DWORD m_dwGlobalExclusionItemCount;
Varray<PUID> m_GlobalExclusionArray; //array of PUID's that are excluded
PUID* m_pValidDependentPUIDArray; // array of PUIDs that is valid for dependent item on this version
int m_nNumOfValidDependentPUID;
PBYTE m_pBitMaskAS; // bitmask for Setup
PBYTE m_pBitMaskCDM; // bitmask for Driver
CDynamicUpdate *m_pDu;
BOOL m_fHasDriver;
LPSTR m_pszExcludedDriver;
// Server Ident Paths
char m_szCabPoolUrl[INTERNET_MAX_URL_LENGTH + 1];
char m_szV31ContentUrl[INTERNET_MAX_URL_LENGTH + 1];
char m_szV31RootUrl[INTERNET_MAX_URL_LENGTH + 1];
};