/*++ Copyright (c) 2001 Microsoft Corporation Module Name: bitssrvcfg.h Abstract: Header to define server configuration information. --*/ #define BITS_COMMAND_VERBW L"BITS_POST" #define BITS_COMMAND_VERBA "BITS_POST" const DWORD MD_BITS_UPLOAD_ENABLED = 0; const DWORD MD_BITS_CONNECTION_DIR = 1; const DWORD MD_BITS_MAX_FILESIZE = 2; const DWORD MD_BITS_NO_PROGRESS_TIMEOUT = 3; const DWORD MD_BITS_NOTIFICATION_URL_TYPE = 4; const DWORD MD_BITS_NOTIFICATION_URL = 5; const DWORD MD_BITS_CLEANUP_WORKITEM_KEY = 6; const DWORD MD_BITS_HOSTID = 7; const DWORD MD_BITS_HOSTID_FALLBACK_TIMEOUT = 8; enum BITS_SERVER_NOTIFICATION_TYPE { BITS_NOTIFICATION_TYPE_NONE = 0, BITS_NOTIFICATION_TYPE_POST_BYREF = 1, BITS_NOTIFICATION_TYPE_POST_BYVAL = 2, BITS_NOTIFICATION_TYPE_MAX = 2 }; const WCHAR * const MD_BITS_UNLIMITED_MAX_FILESIZE = L"18446744073709551615"; const CHAR * const MD_BITS_UNLIMITED_MAX_FILESIZEA = "18446744073709551615"; const UINT64 MD_BITS_UNLIMITED_MAX_FILESIZE_AS_INT64 = 18446744073709551615; const DWORD MD_BITS_NO_TIMEOUT = 0xFFFFFFFF; const WCHAR * const MD_DEFAULT_BITS_CONNECTION_DIR = L"BITS-Sessions"; const CHAR * const MD_DEFAULT_BITS_CONNECTION_DIRA = "BITS-Sessions"; const WCHAR * const MD_DEFAULT_BITS_MAX_FILESIZE = MD_BITS_UNLIMITED_MAX_FILESIZE; const CHAR * const MD_DEFAULT_BITS_MAX_FILESIZEA = MD_BITS_UNLIMITED_MAX_FILESIZEA; const UINT64 MD_DEFAULT_BITS_MAX_FILESIZE_AS_INT64 = MD_BITS_UNLIMITED_MAX_FILESIZE_AS_INT64; const DWORD MD_DEFAULT_NO_PROGESS_TIMEOUT = 60 /*seconds*/ * 60 /* minutes */ * 24 /* hours */ * 14 /* days */; const BITS_SERVER_NOTIFICATION_TYPE MD_DEFAULT_BITS_NOTIFICATION_URL_TYPE = BITS_NOTIFICATION_TYPE_NONE; const WCHAR * const MD_DEFAULT_BITS_NOTIFICATION_URL = L""; const CHAR * const MD_DEFAULT_BITS_NOTIFICATION_URLA = ""; const WCHAR * const MD_DEFAULT_BITS_HOSTID = L""; const CHAR * const MD_DEFAULT_BITS_HOSTIDA = ""; const DWORD MD_DEFAULT_HOSTID_FALLBACK_TIMEOUT = 60 /*seconds*/ * 60 /* minutes */ * 24 /* hours */; /* 1 day */ struct PROPERTY_ITEM { WCHAR * PropertyName; WCHAR * ClassName; WCHAR * Syntax; DWORD UserType; DWORD PropertyNumber; }; const PROPERTY_ITEM g_Properties[] = { { L"BITSUploadEnabled", L"IIsWebVirtualDir", L"Boolean", IIS_MD_UT_FILE, 0 }, { L"BITSSessionDirectory", L"IIsWebVirtualDir", L"String", IIS_MD_UT_FILE, 1 }, { L"BITSMaximumUploadSize", L"IIsWebVirtualDir", L"String", IIS_MD_UT_FILE, 2 }, { L"BITSSessionTimeout", L"IIsWebVirtualDir", L"Integer", IIS_MD_UT_FILE, 3 }, { L"BITSServerNotificationType", L"IIsWebVirtualDir", L"Integer", IIS_MD_UT_FILE, 4 }, { L"BITSServerNotificationURL", L"IIsWebVirtualDir", L"String", IIS_MD_UT_FILE, 5 }, { L"BITSCleanupWorkItemKey", L"IIsWebVirtualDir", L"String", IIS_MD_UT_FILE, 6 }, { L"BITSHostId", L"IIsWebVirtualDir", L"String", IIS_MD_UT_FILE, 7 }, { L"BITSHostIdFallbackTimeout", L"IIsWebVirtualDir", L"Integer", IIS_MD_UT_FILE, 8 } }; const SIZE_T g_NumberOfProperties = sizeof(g_Properties)/sizeof(*g_Properties); class PropertyIDManager { DWORD m_PropertyIDs[ g_NumberOfProperties ]; DWORD m_PropertyUserTypes[ g_NumberOfProperties ]; public: PropertyIDManager() { memset( &m_PropertyIDs, 0, sizeof( m_PropertyIDs ) ); memset( &m_PropertyUserTypes, 0, sizeof( m_PropertyUserTypes ) ); } HRESULT LoadPropertyInfo( const WCHAR *MachineName = L"LocalHost" ); DWORD GetPropertyMetabaseID( DWORD PropID ) { return m_PropertyIDs[PropID]; } DWORD GetPropertyUserType( DWORD PropID ) { return m_PropertyUserTypes[PropID]; } };