//======================================================================= // // Copyright (c) 1998-1999 Microsoft Corporation. All Rights Reserved. // // File: cdmp.helper // // Owner: YanL // // Description: // // CDM internal header // //======================================================================= #ifndef _CDMP_H #define SZ_SECURITY_SERVER _T("http://windowsupdate.microsoft.com/v3content") #define REGKEY_WUV3TEST _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\wuv3test") #define MAX_INDEX_TO_SEARCH 100 //range to find unique file names for hardware_XXX.xml typedef enum tagSKU { SKU_NOT_SPECIFIED = 0, SKU_PERSONAL = 1, SKU_PROFESSIONAL = 2, SKU_SERVER = 3, SKU_ADVANCED_SERVER = 4, SKU_DATACENTER_SERVER = 5 } enumSKU; const LPCTSTR SKU_STRINGS[]={ _T("Unknown"), _T("Personal"), _T("Professional"), _T("Server"), _T("AdvancedServer"), _T("DataCenter") }; //17 is the length of string "DataCenterServer" + 1 const int SKU_STRING_MIN_LENGTH = 17 * sizeof(TCHAR); const int SKU_STRING_MAX_LENGTH = 100; struct SHelper { CDownload download; CDiamond diamond; OSVERSIONINFO OSVersionInfo; // current OSVERSIONINFO from GetVersionEx() DWORD dwArchitecture; // Specifies the system's processor architecture. DWORD dwLangID; enumV3Platform enPlatform; PUID puid; PUID puidCatalog; vector apuidExclude; byte_buffer bufBucket; // we need to keep it to have information in DRIVER_MATCH_INFO valid DRIVER_MATCH_INFO DriverMatchInfo; }; #pragma pack() // called by DownloadIsInternetAvailable() int GetDUNConnections(void); bool IsInternetConnectionWizardCompleted(void); bool IsInternetConnected(void); // called by DownloadGetUpdatedFiles() bool FindDevInstID(IN LPCSTR szHardwareID, string& sDevInstID); // called by RealDownloadGetUpdatedFiles() bool IsWindowsNT(void); // called by OpenCDMContext() bool ProcessIdent(IN CDownload& download, IN CDiamond& diamond, IN LPCTSTR szSecurityServerCur, OUT LPTSTR szSiteServer, OUT LPTSTR szDownloadServer); bool DownloadCdmCab(IN CDownload& download, IN CDiamond& diamond, OUT bool& fNeedUpdate); // called by DownloadUpdatedFiles() int GetDownloadPath(OUT LPTSTR szPath); void GetWindowsUpdateDirectory(IN LPTSTR szDir); HINSTANCE LoadCdmnewDll(); // called by GetPackage() DWORD PrepareCatalog(IN LPCTSTR pszSiteServer, IN OUT SHelper& helper); DWORD ProcessOsdet(IN OUT SHelper& helper); bool BuildExclusionsList(IN SHelper& helper); bool FindCatalog(IN OUT SHelper& helper); bool FindUpdate( IN PDOWNLOADINFO pDownLoadInfo, IN OUT SHelper& helper, IN OUT byte_buffer& bufBucket ); bool DeleteNode(LPCTSTR szDir); // called by InternalQueryDetectionFiles() bool DownloadToBuffer(IN SHelper& helper, IN LPCTSTR szPath, OUT byte_buffer& bufOut); #define URLPING_FAILED _T("DLOAD_FAILURE") #define URLPING_SUCCESS _T("DLOAD_SUCCESS") void URLPingReport(IN SHelper& helper, IN LPCTSTR pszStatus); // called by DllMain bool UpdateCdmDll(); //called by InternalLogDriverNotFound() HRESULT GetUniqueFileName( IN LPTSTR tszDirPath, IN LPTSTR lpBuffer, IN DWORD dwSize, OUT HANDLE &hFile ); HRESULT GetSKUString( IN LPTSTR lpSKUBuffer, IN DWORD dwSize ); DWORD ProcessOsdetOffline( IN OUT SHelper& helper ); HRESULT CdmCanonicalizeUrl( IN LPCTSTR lpszUrl, OUT tchar_buffer &tchBuf, IN DWORD dwLen, IN DWORD dwFlags ); #define _CDMP_H #endif