windows-nt/Source/XPSP1/NT/enduser/windows.com/wuv3/cdm/cdmp.h

136 lines
3.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//=======================================================================
//
// 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