| 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 |
|