169 lines
4.4 KiB
C++
169 lines
4.4 KiB
C++
/*++
|
|
|
|
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];
|
|
}
|
|
|
|
};
|
|
|