Headers diff for httpapi.dll between 6.0.6001.18000-Windows 6.0 and 6.1.7601.17514-Windows 7.0 versions



 http.h (6.0.6001.18000-Windows 6.0)   http.h (6.1.7601.17514-Windows 7.0) 
skipping to change at line 30 skipping to change at line 30
#pragma once #pragma once
#if _WIN32_WINNT >= 0x0501 #if _WIN32_WINNT >= 0x0501
// //
// HTTPAPI is available on // HTTPAPI is available on
// //
// a) WinXP SP2 and higher // a) WinXP SP2 and higher
// b) Windows 2003 and higher // b) Windows 2003 and higher
// c) Longhorn and higher. // c) Vista and higher.
// //
#include <winsock2.h> #include <winsock2.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif // __cplusplus #endif // __cplusplus
// //
skipping to change at line 123 skipping to change at line 123
// Used for modifying the verbosity level of 503 type responses // Used for modifying the verbosity level of 503 type responses
// generated by server side API. // generated by server side API.
// //
HttpServer503VerbosityProperty, HttpServer503VerbosityProperty,
// //
// Used for manipulating Url Group to Request Queue association. // Used for manipulating Url Group to Request Queue association.
// //
HttpServerBindingProperty HttpServerBindingProperty,
//
// Extended authentication property.
//
HttpServerExtendedAuthenticationProperty,
//
// Listening endpoint property.
//
HttpServerListenEndpointProperty
//
// Authentication channel binding property
//
#endif
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
,HttpServerChannelBindProperty
//
// IP Protection level policy for a Url Group.
//
,HttpServerProtectionLevelProperty
#endif
#if _WIN32_WINNT >= 0x0600
} HTTP_SERVER_PROPERTY, *PHTTP_SERVER_PROPERTY; } HTTP_SERVER_PROPERTY, *PHTTP_SERVER_PROPERTY;
#define HTTP_MAX_SERVER_QUEUE_LENGTH 0x7FFFFFFF #define HTTP_MAX_SERVER_QUEUE_LENGTH 0x7FFFFFFF
#define HTTP_MIN_SERVER_QUEUE_LENGTH 1 #define HTTP_MIN_SERVER_QUEUE_LENGTH 1
// //
// Generic property flags. Each structure defining a property info typically // Generic property flags. Each structure defining a property info typically
// contain an element of this type. // contain an element of this type.
// //
skipping to change at line 193 skipping to change at line 222
} HTTP_503_RESPONSE_VERBOSITY, *PHTTP_503_RESPONSE_VERBOSITY; } HTTP_503_RESPONSE_VERBOSITY, *PHTTP_503_RESPONSE_VERBOSITY;
// //
// Network QoS related. // Network QoS related.
// //
typedef enum _HTTP_QOS_SETTING_TYPE typedef enum _HTTP_QOS_SETTING_TYPE
{ {
HttpQosSettingTypeBandwidth, HttpQosSettingTypeBandwidth,
HttpQosSettingTypeConnectionLimit HttpQosSettingTypeConnectionLimit,
HttpQosSettingTypeFlowRate
} HTTP_QOS_SETTING_TYPE, *PHTTP_QOS_SETTING_TYPE; } HTTP_QOS_SETTING_TYPE, *PHTTP_QOS_SETTING_TYPE;
typedef struct _HTTP_QOS_SETTING_INFO typedef struct _HTTP_QOS_SETTING_INFO
{ {
HTTP_QOS_SETTING_TYPE QosType; HTTP_QOS_SETTING_TYPE QosType;
PVOID QosSetting; PVOID QosSetting;
} HTTP_QOS_SETTING_INFO, *PHTTP_QOS_SETTING_INFO; } HTTP_QOS_SETTING_INFO, *PHTTP_QOS_SETTING_INFO;
typedef struct _HTTP_CONNECTION_LIMIT_INFO typedef struct _HTTP_CONNECTION_LIMIT_INFO
skipping to change at line 217 skipping to change at line 247
} HTTP_CONNECTION_LIMIT_INFO, *PHTTP_CONNECTION_LIMIT_INFO; } HTTP_CONNECTION_LIMIT_INFO, *PHTTP_CONNECTION_LIMIT_INFO;
typedef struct _HTTP_BANDWIDTH_LIMIT_INFO typedef struct _HTTP_BANDWIDTH_LIMIT_INFO
{ {
HTTP_PROPERTY_FLAGS Flags; HTTP_PROPERTY_FLAGS Flags;
ULONG MaxBandwidth; ULONG MaxBandwidth;
} HTTP_BANDWIDTH_LIMIT_INFO, *PHTTP_BANDWIDTH_LIMIT_INFO; } HTTP_BANDWIDTH_LIMIT_INFO, *PHTTP_BANDWIDTH_LIMIT_INFO;
typedef struct _HTTP_FLOWRATE_INFO
{
HTTP_PROPERTY_FLAGS Flags;
ULONG MaxBandwidth;
ULONG MaxPeakBandwidth;
ULONG BurstSize;
} HTTP_FLOWRATE_INFO, *PHTTP_FLOWRATE_INFO;
// //
// Bandwidth throttling limit can not be set lower than the following // Bandwidth throttling limit can not be set lower than the following
// number. The value is in bytes/sec. // number. The value is in bytes/sec.
// //
#define HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE ((ULONG)1024) #define HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE ((ULONG)1024)
// //
// Distinguished value for bandwidth, connection limits and logging rollover // Distinguished value for bandwidth, connection limits and logging rollover
// size indicating "no limit". // size indicating "no limit".
skipping to change at line 301 skipping to change at line 340
// //
// Timeouts configured in bytes/second. // Timeouts configured in bytes/second.
// This timer can be turned off by setting it to MAXULONG. // This timer can be turned off by setting it to MAXULONG.
// //
ULONG MinSendRate; ULONG MinSendRate;
} HTTP_TIMEOUT_LIMIT_INFO, *PHTTP_TIMEOUT_LIMIT_INFO; } HTTP_TIMEOUT_LIMIT_INFO, *PHTTP_TIMEOUT_LIMIT_INFO;
//
// Controls whether IP-based URLs should listen on the specific IP or wildcard.
//
typedef struct _HTTP_LISTEN_ENDPOINT_INFO
{
HTTP_PROPERTY_FLAGS Flags;
BOOLEAN EnableSharing;
} HTTP_LISTEN_ENDPOINT_INFO, *PHTTP_LISTEN_ENDPOINT_INFO;
typedef struct _HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS typedef struct _HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS
{ {
USHORT DomainNameLength; USHORT DomainNameLength;
PWSTR DomainName; PWSTR DomainName;
USHORT RealmLength; USHORT RealmLength;
PWSTR Realm; PWSTR Realm;
} HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS, } HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS,
*PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS; *PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS;
typedef struct _HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS typedef struct _HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS
skipping to change at line 325 skipping to change at line 376
*PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS; *PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS;
// //
// Definitions used for setting server side authentication property. // Definitions used for setting server side authentication property.
// //
#define HTTP_AUTH_ENABLE_BASIC (0x00000001) #define HTTP_AUTH_ENABLE_BASIC (0x00000001)
#define HTTP_AUTH_ENABLE_DIGEST (0x00000002) #define HTTP_AUTH_ENABLE_DIGEST (0x00000002)
#define HTTP_AUTH_ENABLE_NTLM (0x00000004) #define HTTP_AUTH_ENABLE_NTLM (0x00000004)
#define HTTP_AUTH_ENABLE_NEGOTIATE (0x00000008) #define HTTP_AUTH_ENABLE_NEGOTIATE (0x00000008)
#define HTTP_AUTH_ENABLE_KERBEROS (0x00000010)
#define HTTP_AUTH_ENABLE_ALL \ #define HTTP_AUTH_ENABLE_ALL \
(HTTP_AUTH_ENABLE_BASIC |\ (HTTP_AUTH_ENABLE_BASIC |\
HTTP_AUTH_ENABLE_DIGEST |\ HTTP_AUTH_ENABLE_DIGEST |\
HTTP_AUTH_ENABLE_NTLM |\ HTTP_AUTH_ENABLE_NTLM |\
HTTP_AUTH_ENABLE_NEGOTIATE) HTTP_AUTH_ENABLE_NEGOTIATE |\
HTTP_AUTH_ENABLE_KERBEROS)
C_ASSERT(HTTP_AUTH_ENABLE_NEGOTIATE > HTTP_AUTH_ENABLE_NTLM); C_ASSERT(HTTP_AUTH_ENABLE_NEGOTIATE > HTTP_AUTH_ENABLE_NTLM);
C_ASSERT(HTTP_AUTH_ENABLE_NTLM > HTTP_AUTH_ENABLE_DIGEST); C_ASSERT(HTTP_AUTH_ENABLE_NTLM > HTTP_AUTH_ENABLE_DIGEST);
C_ASSERT(HTTP_AUTH_ENABLE_DIGEST > HTTP_AUTH_ENABLE_BASIC); C_ASSERT(HTTP_AUTH_ENABLE_DIGEST > HTTP_AUTH_ENABLE_BASIC);
#define HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING (0x01)
#define HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL (0x02)
typedef struct _HTTP_SERVER_AUTHENTICATION_INFO typedef struct _HTTP_SERVER_AUTHENTICATION_INFO
{ {
HTTP_PROPERTY_FLAGS Flags; HTTP_PROPERTY_FLAGS Flags;
ULONG AuthSchemes; ULONG AuthSchemes;
BOOLEAN ReceiveMutualAuth; BOOLEAN ReceiveMutualAuth;
BOOLEAN ReceiveContextHandle; BOOLEAN ReceiveContextHandle;
BOOLEAN DisableNTLMCredentialCaching; BOOLEAN DisableNTLMCredentialCaching;
UCHAR ExFlags;
HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS DigestParams; HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS DigestParams;
HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS BasicParams;
HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS BasicParams;
} HTTP_SERVER_AUTHENTICATION_INFO, *PHTTP_SERVER_AUTHENTICATION_INFO; } HTTP_SERVER_AUTHENTICATION_INFO, *PHTTP_SERVER_AUTHENTICATION_INFO;
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
//
// Definitions for setting authentication channel binding properties
//
typedef enum _HTTP_SERVICE_BINDING_TYPE
{
HttpServiceBindingTypeNone = 0,
HttpServiceBindingTypeW,
HttpServiceBindingTypeA
} HTTP_SERVICE_BINDING_TYPE;
typedef struct _HTTP_SERVICE_BINDING_BASE
{
HTTP_SERVICE_BINDING_TYPE Type;
} HTTP_SERVICE_BINDING_BASE, *PHTTP_SERVICE_BINDING_BASE;
typedef struct _HTTP_SERVICE_BINDING_A
{
HTTP_SERVICE_BINDING_BASE Base;
PCHAR Buffer;
ULONG BufferSize;
} HTTP_SERVICE_BINDING_A, *PHTTP_SERVICE_BINDING_A;
typedef struct _HTTP_SERVICE_BINDING_W
{
HTTP_SERVICE_BINDING_BASE Base;
PWCHAR Buffer;
ULONG BufferSize;
} HTTP_SERVICE_BINDING_W, *PHTTP_SERVICE_BINDING_W;
typedef enum _HTTP_AUTHENTICATION_HARDENING_LEVELS
{
HttpAuthenticationHardeningLegacy = 0,
HttpAuthenticationHardeningMedium,
HttpAuthenticationHardeningStrict
} HTTP_AUTHENTICATION_HARDENING_LEVELS;
//
// Channel binding token verification flags.
//
#define HTTP_CHANNEL_BIND_PROXY 0x1
#define HTTP_CHANNEL_BIND_PROXY_COHOSTING 0x20
//
// Service bind verification flags
//
#define HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK 0x2
#define HTTP_CHANNEL_BIND_DOTLESS_SERVICE 0x4
//
// Flags triggering channel bind parameters retrieval
//
#define HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN 0x8
#define HTTP_CHANNEL_BIND_CLIENT_SERVICE 0x10
//
// All valid flags (mask for internal checks)
//
typedef struct _HTTP_CHANNEL_BIND_INFO
{
HTTP_AUTHENTICATION_HARDENING_LEVELS Hardening;
ULONG Flags;
PHTTP_SERVICE_BINDING_BASE * ServiceNames;
ULONG NumberOfServiceNames;
} HTTP_CHANNEL_BIND_INFO, *PHTTP_CHANNEL_BIND_INFO;
typedef struct _HTTP_REQUEST_CHANNEL_BIND_STATUS
{
PHTTP_SERVICE_BINDING_BASE ServiceName;
PUCHAR ChannelToken;
ULONG ChannelTokenSize;
ULONG Flags;
} HTTP_REQUEST_CHANNEL_BIND_STATUS, *PHTTP_REQUEST_CHANNEL_BIND_STATUS;
#endif
// //
// Definitions used for setting logging property. // Definitions used for setting logging property.
// //
// //
// The known log fields recognized/supported by HTTPAPI. Following fields // The known log fields recognized/supported by HTTPAPI. Following fields
// are used for W3C logging. Subset of them are also used for error // are used for W3C logging. Subset of them are also used for error
// logging. // logging.
// //
skipping to change at line 554 skipping to change at line 702
// Binding information. // Binding information.
// //
typedef struct _HTTP_BINDING_INFO typedef struct _HTTP_BINDING_INFO
{ {
HTTP_PROPERTY_FLAGS Flags; HTTP_PROPERTY_FLAGS Flags;
HANDLE RequestQueueHandle; HANDLE RequestQueueHandle;
} HTTP_BINDING_INFO, *PHTTP_BINDING_INFO; } HTTP_BINDING_INFO, *PHTTP_BINDING_INFO;
#endif
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
//
// Defines the protection level types for UrlGroups.
//
typedef enum _HTTP_PROTECTION_LEVEL_TYPE
{
//
// This option will allow edge (NAT) traversed traffic, i.e. Teredo
// for the UrlGroup, unless there is an admin rule that overwrites the
// application's intend.
//
HttpProtectionLevelUnrestricted,
//
// This setting will ensure that edge (NAT) traversed traffic
// will not be allowed.
//
HttpProtectionLevelEdgeRestricted,
//
// Below type is not supported by HTTP API.
//
HttpProtectionLevelRestricted
} HTTP_PROTECTION_LEVEL_TYPE, *PHTTP_PROTECTION_LEVEL_TYPE;
//
// Controls whether the associated UrlGroup Namespace should receive
// edge traversed traffic. By default this parameter is unspecified.
//
typedef struct _HTTP_PROTECTION_LEVEL_INFO
{
HTTP_PROPERTY_FLAGS Flags;
HTTP_PROTECTION_LEVEL_TYPE Level;
} HTTP_PROTECTION_LEVEL_INFO, *PHTTP_PROTECTION_LEVEL_INFO;
#endif
#if _WIN32_WINNT >= 0x0600
// //
// Definitions for request queue manipulation. // Definitions for request queue manipulation.
// //
// These flags are used with HttpCreateRequestQueue() API. // These flags are used with HttpCreateRequestQueue() API.
// //
// HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING - To open an existing request // HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING - To open an existing request
// queue. The request queue name must be supplied. // queue. The request queue name must be supplied.
// //
// HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER - Creates the request queue and // HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER - Creates the request queue and
// marks that the caller process is not willing to do send/receive (HTTP I/O)on // marks that the caller process is not willing to do send/receive (HTTP I/O)on
skipping to change at line 617 skipping to change at line 812
// HTTP_SEND_RESPONSE_FLAG_MORE_DATA - Specifies that additional entity body // HTTP_SEND_RESPONSE_FLAG_MORE_DATA - Specifies that additional entity body
// data will be sent by the caller. // data will be sent by the caller.
// //
// HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA - Specifies that a caller wants the // HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA - Specifies that a caller wants the
// response to complete as soon as possible at the cost of buffering partial // response to complete as soon as possible at the cost of buffering partial
// or the entire response. // or the entire response.
// //
// HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING - Specifies that a caller wants to // HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING - Specifies that a caller wants to
// enable the TCP nagling algorithm for this particular send. // enable the TCP nagling algorithm for this particular send.
// //
// HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES - Specifies that for a range request
// a full response content is passed and a caller wants HTTP API to process
// ranges properly.
//
#define HTTP_SEND_RESPONSE_FLAG_DISCONNECT 0x00000001 #define HTTP_SEND_RESPONSE_FLAG_DISCONNECT 0x00000001
#define HTTP_SEND_RESPONSE_FLAG_MORE_DATA 0x00000002 #define HTTP_SEND_RESPONSE_FLAG_MORE_DATA 0x00000002
#define HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA 0x00000004 #define HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA 0x00000004
#define HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING 0x00000008 #define HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING 0x00000008
#define HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES 0x00000020
// //
// Flags for HttpFlushResponseCache(). // Flags for HttpFlushResponseCache().
// //
// HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE - Flushes the specified URL and all // HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE - Flushes the specified URL and all
// hierarchally-related sub-URLs from the response or fragment cache. // hierarchally-related sub-URLs from the response or fragment cache.
// //
#define HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE 0x00000001 #define HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE 0x00000001
skipping to change at line 1147 skipping to change at line 1347
HttpAuthStatusFailure HttpAuthStatusFailure
} HTTP_AUTH_STATUS, *PHTTP_AUTH_STATUS; } HTTP_AUTH_STATUS, *PHTTP_AUTH_STATUS;
typedef enum _HTTP_REQUEST_AUTH_TYPE typedef enum _HTTP_REQUEST_AUTH_TYPE
{ {
HttpRequestAuthTypeNone = 0, HttpRequestAuthTypeNone = 0,
HttpRequestAuthTypeBasic, HttpRequestAuthTypeBasic,
HttpRequestAuthTypeDigest, HttpRequestAuthTypeDigest,
HttpRequestAuthTypeNTLM, HttpRequestAuthTypeNTLM,
HttpRequestAuthTypeNegotiate HttpRequestAuthTypeNegotiate,
HttpRequestAuthTypeKerberos
} HTTP_REQUEST_AUTH_TYPE, *PHTTP_REQUEST_AUTH_TYPE; } HTTP_REQUEST_AUTH_TYPE, *PHTTP_REQUEST_AUTH_TYPE;
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
// //
// SSL Client certificate information. // SSL Client certificate information.
// //
typedef struct _HTTP_SSL_CLIENT_CERT_INFO typedef struct _HTTP_SSL_CLIENT_CERT_INFO
{ {
ULONG CertFlags; ULONG CertFlags;
ULONG CertEncodedSize; ULONG CertEncodedSize;
PUCHAR pCertEncoded; PUCHAR pCertEncoded;
HANDLE Token; HANDLE Token;
BOOLEAN CertDeniedByMapper; BOOLEAN CertDeniedByMapper;
} HTTP_SSL_CLIENT_CERT_INFO, *PHTTP_SSL_CLIENT_CERT_INFO; } HTTP_SSL_CLIENT_CERT_INFO, *PHTTP_SSL_CLIENT_CERT_INFO;
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
//
// Flag to retrieve secure channel binding with HttpReceiveClientCertificate
//
#define HTTP_RECEIVE_SECURE_CHANNEL_TOKEN 0x1
#endif
// //
// Data computed during SSL handshake. // Data computed during SSL handshake.
// //
typedef struct _HTTP_SSL_INFO typedef struct _HTTP_SSL_INFO
{ {
USHORT ServerCertKeySize; USHORT ServerCertKeySize;
USHORT ConnectionKeySize; USHORT ConnectionKeySize;
ULONG ServerCertIssuerSize; ULONG ServerCertIssuerSize;
ULONG ServerCertSubjectSize; ULONG ServerCertSubjectSize;
skipping to change at line 1196 skipping to change at line 1407
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// //
// Generic request information type. // Generic request information type.
// //
typedef enum _HTTP_REQUEST_INFO_TYPE typedef enum _HTTP_REQUEST_INFO_TYPE
{ {
HttpRequestInfoTypeAuth HttpRequestInfoTypeAuth
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
,HttpRequestInfoTypeChannelBind
#endif
} HTTP_REQUEST_INFO_TYPE, *PHTTP_REQUEST_INFO_TYPE; } HTTP_REQUEST_INFO_TYPE, *PHTTP_REQUEST_INFO_TYPE;
typedef struct _HTTP_REQUEST_INFO typedef struct _HTTP_REQUEST_INFO
{ {
HTTP_REQUEST_INFO_TYPE InfoType; HTTP_REQUEST_INFO_TYPE InfoType;
ULONG InfoLength; ULONG InfoLength;
PVOID pInfo; PVOID pInfo;
} HTTP_REQUEST_INFO, *PHTTP_REQUEST_INFO; } HTTP_REQUEST_INFO, *PHTTP_REQUEST_INFO;
skipping to change at line 1362 skipping to change at line 1577
// SSL connection information. // SSL connection information.
// //
HTTP_RAW_CONNECTION_ID RawConnectionId; HTTP_RAW_CONNECTION_ID RawConnectionId;
PHTTP_SSL_INFO pSslInfo; PHTTP_SSL_INFO pSslInfo;
} HTTP_REQUEST_V1, *PHTTP_REQUEST_V1; } HTTP_REQUEST_V1, *PHTTP_REQUEST_V1;
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// Longhorn // Vista
// //
// Version 2.0 members are defined here // Version 2.0 members are defined here
// N.B. One must define V2 elements in two places :( // N.B. One must define V2 elements in two places :(
// This is due to the fact that C++ doesn't allow anonymous // This is due to the fact that C++ doesn't allow anonymous
// structure declarations and one must use structure // structure declarations and one must use structure
// inheritance instead. // inheritance instead.
// //
#ifdef __cplusplus #ifdef __cplusplus
skipping to change at line 1483 skipping to change at line 1698
// pEntityChunks points to an array of EntityChunkCount HTTP_DATA_CHUNKs. // pEntityChunks points to an array of EntityChunkCount HTTP_DATA_CHUNKs.
// //
USHORT EntityChunkCount; USHORT EntityChunkCount;
PHTTP_DATA_CHUNK pEntityChunks; PHTTP_DATA_CHUNK pEntityChunks;
} HTTP_RESPONSE_V1, *PHTTP_RESPONSE_V1; } HTTP_RESPONSE_V1, *PHTTP_RESPONSE_V1;
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// Longhorn //
// Values for HTTP_RESPONSE::Flags.
//
// HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE - Set this flag if encodings
// other than identity form are available for this resource.This flag is ignored
// if application has not asked for response to be cached. It's used as a hint
// to the Http Server API for content negotiation used when serving from the
// the kernel response cache.
//
#define HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE 0x00000001
// Vista
typedef enum _HTTP_RESPONSE_INFO_TYPE typedef enum _HTTP_RESPONSE_INFO_TYPE
{ {
HttpResponseInfoTypeMultipleKnownHeaders HttpResponseInfoTypeMultipleKnownHeaders,
HttpResponseInfoTypeAuthenticationProperty,
HttpResponseInfoTypeQoSProperty
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
,HttpResponseInfoTypeChannelBind
#endif
} HTTP_RESPONSE_INFO_TYPE, PHTTP_RESPONSE_INFO_TYPE; } HTTP_RESPONSE_INFO_TYPE, PHTTP_RESPONSE_INFO_TYPE;
typedef struct _HTTP_RESPONSE_INFO typedef struct _HTTP_RESPONSE_INFO
{ {
HTTP_RESPONSE_INFO_TYPE Type; HTTP_RESPONSE_INFO_TYPE Type;
ULONG Length; ULONG Length;
PVOID pInfo; PVOID pInfo;
} HTTP_RESPONSE_INFO, *PHTTP_RESPONSE_INFO; } HTTP_RESPONSE_INFO, *PHTTP_RESPONSE_INFO;
#define HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER 0x00000001 #define HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER 0x00000001
skipping to change at line 1525 skipping to change at line 1759
// //
USHORT KnownHeaderCount; USHORT KnownHeaderCount;
// //
// Array of known header structures. // Array of known header structures.
// //
PHTTP_KNOWN_HEADER KnownHeaders; PHTTP_KNOWN_HEADER KnownHeaders;
} HTTP_MULTIPLE_KNOWN_HEADERS, } HTTP_MULTIPLE_KNOWN_HEADERS, *PHTTP_MULTIPLE_KNOWN_HEADERS;
*PHTTP_MULTIPLE_KNOWN_HEADERS;
// //
// Version 2.0 members are defined here // Version 2.0 members are defined here
// N.B. One must define V2 elements in two places :( // N.B. One must define V2 elements in two places :(
// This is due to the fact that C++ doesn't allow anonymous // This is due to the fact that C++ doesn't allow anonymous
// structure declarations and one must use structure // structure declarations and one must use structure
// inheritance instead. // inheritance instead.
// //
#ifdef __cplusplus #ifdef __cplusplus
skipping to change at line 1592 skipping to change at line 1825
typedef struct _HTTPAPI_VERSION typedef struct _HTTPAPI_VERSION
{ {
USHORT HttpApiMajorVersion; USHORT HttpApiMajorVersion;
USHORT HttpApiMinorVersion; USHORT HttpApiMinorVersion;
} HTTPAPI_VERSION, *PHTTPAPI_VERSION; } HTTPAPI_VERSION, *PHTTPAPI_VERSION;
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// Longhorn // Vista
#define HTTPAPI_VERSION_2 { 2, 0 } #define HTTPAPI_VERSION_2 { 2, 0 }
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
#define HTTPAPI_VERSION_1 { 1, 0 } #define HTTPAPI_VERSION_1 { 1, 0 }
#define HTTPAPI_EQUAL_VERSION(version, major, minor) \ #define HTTPAPI_EQUAL_VERSION(version, major, minor) \
((version).HttpApiMajorVersion == (major) && \ ((version).HttpApiMajorVersion == (major) && \
(version).HttpApiMinorVersion == (minor)) (version).HttpApiMinorVersion == (minor))
skipping to change at line 1657 skipping to change at line 1890
// Enum that is used with HttpSetServiceConfiguration(), // Enum that is used with HttpSetServiceConfiguration(),
// HttpQueryServiceConfiguration(), and HttpDeleteServiceConfiguration() APIs. // HttpQueryServiceConfiguration(), and HttpDeleteServiceConfiguration() APIs.
// //
typedef enum _HTTP_SERVICE_CONFIG_ID typedef enum _HTTP_SERVICE_CONFIG_ID
{ {
HttpServiceConfigIPListenList, // Set, Query & Delete. HttpServiceConfigIPListenList, // Set, Query & Delete.
HttpServiceConfigSSLCertInfo, // Set, Query & Delete. HttpServiceConfigSSLCertInfo, // Set, Query & Delete.
HttpServiceConfigUrlAclInfo, // Set, Query & Delete. HttpServiceConfigUrlAclInfo, // Set, Query & Delete.
HttpServiceConfigTimeout, // Set, Query & Delete. HttpServiceConfigTimeout, // Set, Query & Delete.
HttpServiceConfigCache, // Set, Query & Delete.
HttpServiceConfigMax HttpServiceConfigMax
} HTTP_SERVICE_CONFIG_ID, *PHTTP_SERVICE_CONFIG_ID; } HTTP_SERVICE_CONFIG_ID, *PHTTP_SERVICE_CONFIG_ID;
// //
// Generic Query enum that can be used with HttpQueryServiceConfiguration() // Generic Query enum that can be used with HttpQueryServiceConfiguration()
// //
typedef enum _HTTP_SERVICE_CONFIG_QUERY_TYPE typedef enum _HTTP_SERVICE_CONFIG_QUERY_TYPE
{ {
skipping to change at line 1874 skipping to change at line 2108
// //
typedef struct _HTTP_SERVICE_CONFIG_URLACL_QUERY typedef struct _HTTP_SERVICE_CONFIG_URLACL_QUERY
{ {
HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc;
HTTP_SERVICE_CONFIG_URLACL_KEY KeyDesc; HTTP_SERVICE_CONFIG_URLACL_KEY KeyDesc;
DWORD dwToken; DWORD dwToken;
} HTTP_SERVICE_CONFIG_URLACL_QUERY, *PHTTP_SERVICE_CONFIG_URLACL_QUERY; } HTTP_SERVICE_CONFIG_URLACL_QUERY, *PHTTP_SERVICE_CONFIG_URLACL_QUERY;
// //
// Cache Paramemers
//
//
// For manipulating global cache parameters.
// The parameters that can be changed or queued are per-uri cache size
// and cached range chunk size.
//
typedef enum _HTTP_SERVICE_CONFIG_CACHE_KEY
{
MaxCacheResponseSize = 0,
CacheRangeChunkSize
} HTTP_SERVICE_CONFIG_CACHE_KEY, *PHTTP_SERVICE_CONFIG_CACHE_KEY;
typedef ULONG HTTP_SERVICE_CONFIG_CACHE_PARAM,
*PHTTP_SERVICE_CONFIG_CACHE_PARAM;
//
// To set a cache parameter value use the set structure. To query use the key
// directly. When you query a parameter value the output buffer must be exactly
// the sizeof param.
//
typedef struct {
HTTP_SERVICE_CONFIG_CACHE_KEY KeyDesc;
HTTP_SERVICE_CONFIG_CACHE_PARAM ParamDesc;
} HTTP_SERVICE_CONFIG_CACHE_SET, *PHTTP_SERVICE_CONFIG_CACHE_SET;
//
// Define our API linkage. // Define our API linkage.
// //
#if !defined(HTTPAPI_LINKAGE) #if !defined(HTTPAPI_LINKAGE)
#define HTTPAPI_LINKAGE DECLSPEC_IMPORT #define HTTPAPI_LINKAGE DECLSPEC_IMPORT
#endif // !HTTPAPI_LINKAGE #endif // !HTTPAPI_LINKAGE
// //
// Initialize/Terminate APIs. // Initialize/Terminate APIs.
// //
skipping to change at line 2260 skipping to change at line 2524
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_CONNECTION_ID ConnectionId, IN HTTP_CONNECTION_ID ConnectionId,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpWaitForDisconnectEx(
IN HANDLE ReqQueueHandle,
IN HTTP_CONNECTION_ID ConnectionId,
__reserved IN ULONG Reserved OPTIONAL,
IN LPOVERLAPPED pOverlapped OPTIONAL
);
HTTPAPI_LINKAGE
ULONG
WINAPI
HttpCancelHttpRequest( HttpCancelHttpRequest(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpWaitForDemandStart( HttpWaitForDemandStart(
 End of changes. 27 change blocks. 
16 lines changed or deleted 290 lines changed or added

This html diff was produced by rfcdiff 1.41.