136 lines
3.5 KiB
C
136 lines
3.5 KiB
C
//=======================================================================
|
|
//
|
|
// 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<PUID> 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
|