Headers diff for httpapi.dll between 6.1.7601.17514-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 http.h (6.1.7601.17514-Windows_7.0)   http.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 22 skipping to change at line 22
This header corresponds to the HTTP API specification This header corresponds to the HTTP API specification
Revision History: Revision History:
--*/ --*/
#ifndef __HTTP_H__ #ifndef __HTTP_H__
#define __HTTP_H__ #define __HTTP_H__
#pragma once #pragma once
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#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) Vista and higher. // c) Vista and higher.
// //
skipping to change at line 43 skipping to change at line 47
#include <winsock2.h> #include <winsock2.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif // __cplusplus #endif // __cplusplus
// //
// Flags for HttpInitialize() and HttpTerminate(). // Flags for HttpInitialize() and HttpTerminate().
// //
// //
// HTTP_INITIALIZE_SERVER - Initializes the HTTP API layer and driver for // HTTP_INITIALIZE_SERVER - Initializes the HTTP API layer and driver for
// applications using server APIs. // applications using server APIs.
// //
// HTTP_INITIALIZE_CONFIG - Initializes the HTTP API layer and driver for // HTTP_INITIALIZE_CONFIG - Initializes the HTTP API layer and driver for
// applications using HTTP configuration APIs. // applications using HTTP configuration APIs.
// //
// HTTP_DEMAND_CBT - Pre-Win7, it checks HTTP API layer and driver for
// Extended Protection capabilities.
// On Win7 and above, this flag has no use and is
// present only for app-compat reasons.
// It must be combined with HTTP_INITIALIZE_SERVER.
// //
// Notes - // Notes -
// //
// 1. These flags can be used in combination. // 1. These flags can be used in combination.
// //
// 2. HttpTerminate() must be called for each call to HttpInitialize() made // 2. HttpTerminate() must be called for each call to HttpInitialize() made
// with each flag set when invoking HttpInitialize. For example, one // with each flag set when invoking HttpInitialize. For example, one
// could make two calls to HttpInitialize() setting HTTP_INITIALIZE_SERVER // could make two calls to HttpInitialize() setting HTTP_INITIALIZE_SERVER
// the first time and HTTP_INITIALIZE_CONFIG the second time. One call // the first time and HTTP_INITIALIZE_CONFIG the second time. One call
// to HttpTerminate() with both flags set suffices to clean up both // to HttpTerminate() with both flags set suffices to clean up both
// calls to HttpInitialize(). // calls to HttpInitialize().
// //
#define HTTP_INITIALIZE_SERVER 0x00000001 #define HTTP_INITIALIZE_SERVER 0x00000001
#define HTTP_INITIALIZE_CONFIG 0x00000002 #define HTTP_INITIALIZE_CONFIG 0x00000002
#define HTTP_DEMAND_CBT 0x00000004
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// //
// Following section defines the properties supported by the // Following section defines the properties supported by the
// server side HTTP API. // server side HTTP API.
// //
typedef enum _HTTP_SERVER_PROPERTY typedef enum _HTTP_SERVER_PROPERTY
{ {
skipping to change at line 135 skipping to change at line 144
// //
// Extended authentication property. // Extended authentication property.
// //
HttpServerExtendedAuthenticationProperty, HttpServerExtendedAuthenticationProperty,
// //
// Listening endpoint property. // Listening endpoint property.
// //
HttpServerListenEndpointProperty HttpServerListenEndpointProperty,
// //
// Authentication channel binding property // Authentication channel binding property
// //
#endif HttpServerChannelBindProperty,
#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
,HttpServerChannelBindProperty
// //
// IP Protection level policy for a Url Group. // IP Protection level policy for a Url Group.
// //
,HttpServerProtectionLevelProperty 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 816 skipping to change at line 820
// 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 // 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 // a full response content is passed and a caller wants HTTP API to process
// ranges properly. // ranges properly.
// //
// HTTP_SEND_RESPONSE_FLAG_OPAQUE - Specifies that the request/response is not
// HTTP compliant and all subsequent bytes should be treated as entity-body.
//
#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 #define HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES 0x00000020
#define HTTP_SEND_RESPONSE_FLAG_OPAQUE 0x00000040
// //
// 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 1405 skipping to change at line 1413
} HTTP_SSL_INFO, *PHTTP_SSL_INFO; } HTTP_SSL_INFO, *PHTTP_SSL_INFO;
#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,
HttpRequestInfoTypeChannelBind
#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 1710 skipping to change at line 1715
// //
// HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE - Set this flag if encodings // HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE - Set this flag if encodings
// other than identity form are available for this resource.This flag is ignored // 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 // 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 // to the Http Server API for content negotiation used when serving from the
// the kernel response cache. // the kernel response cache.
// //
#define HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE 0x00000001 #define HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE 0x00000001
// Vista
typedef enum _HTTP_RESPONSE_INFO_TYPE typedef enum _HTTP_RESPONSE_INFO_TYPE
{ {
HttpResponseInfoTypeMultipleKnownHeaders, HttpResponseInfoTypeMultipleKnownHeaders,
HttpResponseInfoTypeAuthenticationProperty, HttpResponseInfoTypeAuthenticationProperty,
HttpResponseInfoTypeQoSProperty HttpResponseInfoTypeQoSProperty,
HttpResponseInfoTypeChannelBind
#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;
skipping to change at line 1891 skipping to change at line 1891
// 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. HttpServiceConfigCache, // Set, Query & Delete.
#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
HttpServiceConfigSslSniCertInfo, // Set, Query & Delete.
HttpServiceConfigSslCcsCertInfo, // Set, Query & Delete.
#endif
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
{ {
HttpServiceConfigQueryExact, HttpServiceConfigQueryExact,
HttpServiceConfigQueryNext, HttpServiceConfigQueryNext,
HttpServiceConfigQueryMax HttpServiceConfigQueryMax
} HTTP_SERVICE_CONFIG_QUERY_TYPE, *PHTTP_SERVICE_CONFIG_QUERY_TYPE; } HTTP_SERVICE_CONFIG_QUERY_TYPE, *PHTTP_SERVICE_CONFIG_QUERY_TYPE;
// //
// This data structure is used to define a key of the SSL certificate hash // These data structures are used to define the key types of the various SSL
// store. // bindings.
// //
typedef struct _HTTP_SERVICE_CONFIG_SSL_KEY typedef struct _HTTP_SERVICE_CONFIG_SSL_KEY
{ {
PSOCKADDR pIpPort; PSOCKADDR pIpPort;
} HTTP_SERVICE_CONFIG_SSL_KEY, *PHTTP_SERVICE_CONFIG_SSL_KEY; } HTTP_SERVICE_CONFIG_SSL_KEY, *PHTTP_SERVICE_CONFIG_SSL_KEY;
#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
typedef struct _HTTP_SERVICE_CONFIG_SSL_SNI_KEY
{
SOCKADDR_STORAGE IpPort;
PWSTR Host;
} HTTP_SERVICE_CONFIG_SSL_SNI_KEY, *PHTTP_SERVICE_CONFIG_SSL_SNI_KEY;
typedef struct _HTTP_SERVICE_CONFIG_SSL_CCS_KEY
{
SOCKADDR_STORAGE LocalAddress;
} HTTP_SERVICE_CONFIG_SSL_CCS_KEY, *PHTTP_SERVICE_CONFIG_SSL_CCS_KEY;
#endif
// //
// This defines a record for the SSL config store. // This defines a record for the SSL config store.
// //
typedef struct _HTTP_SERVICE_CONFIG_SSL_PARAM typedef struct _HTTP_SERVICE_CONFIG_SSL_PARAM
{ {
ULONG SslHashLength; // Length of the SSL hash (in bytes) ULONG SslHashLength; // Length of the SSL hash (in bytes)
PVOID pSslHash; // Pointer to the SSL hash PVOID pSslHash; // Pointer to the SSL hash
GUID AppId; // A unique identifier that can be used to GUID AppId; // A unique identifier that can be used to
// identify the app that has set this parameter // identify the app that has set this parameter
skipping to change at line 1990 skipping to change at line 2013
} HTTP_SERVICE_CONFIG_SSL_PARAM, *PHTTP_SERVICE_CONFIG_SSL_PARAM; } HTTP_SERVICE_CONFIG_SSL_PARAM, *PHTTP_SERVICE_CONFIG_SSL_PARAM;
#define HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER 0x00000001 #define HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER 0x00000001
#define HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT 0x00000002 #define HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT 0x00000002
#if _WIN32_WINNT < 0x0600 #if _WIN32_WINNT < 0x0600
#define HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER 0x00000004 #define HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER 0x00000004
#endif // _WIN32_WINNT < 0x0600 #endif // _WIN32_WINNT < 0x0600
// //
// This data structure is used by HttpSetServiceConfiguration() for the // These data structures are used by HttpSetServiceConfiguration() to add a new
// config ID HttpServiceConfigSSLCertInfo. It's used to add a new record // record to the SSL bindings list.
// to the SSL store. //
// ConfigId | Structure
// --------------------------------+---------------------------------
// HttpServiceConfigSSLCertInfo | HTTP_SERVICE_CONFIG_SSL_SET
// HttpServiceConfigSslSniCertInfo | HTTP_SERVICE_CONFIG_SSL_SNI_SET
// HttpServiceConfigSslCcsCertInfo | HTTP_SERVICE_CONFIG_SSL_CCS_SET
// //
typedef struct _HTTP_SERVICE_CONFIG_SSL_SET typedef struct _HTTP_SERVICE_CONFIG_SSL_SET
{ {
HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc; HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc;
HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc; HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc;
} HTTP_SERVICE_CONFIG_SSL_SET, *PHTTP_SERVICE_CONFIG_SSL_SET; } HTTP_SERVICE_CONFIG_SSL_SET, *PHTTP_SERVICE_CONFIG_SSL_SET;
#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
typedef struct _HTTP_SERVICE_CONFIG_SSL_SNI_SET
{
HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc;
HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc;
} HTTP_SERVICE_CONFIG_SSL_SNI_SET, *PHTTP_SERVICE_CONFIG_SSL_SNI_SET;
typedef struct _HTTP_SERVICE_CONFIG_SSL_CCS_SET
{
HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc;
HTTP_SERVICE_CONFIG_SSL_PARAM ParamDesc;
} HTTP_SERVICE_CONFIG_SSL_CCS_SET, *PHTTP_SERVICE_CONFIG_SSL_CCS_SET;
#endif
// //
// This data structure is used by HttpQueryServiceConfiguration() for the // These data structures are used by HttpQueryServiceConfiguration() to query a
// config ID HttpServiceConfigSSLCertInfo. It's used to query a particular // particular record from the SSL store.
// record from the SSL store.
// //
// If QueryType is HttpServiceConfigQueryExact, then one particular record of // ConfigId | Structure
// the type HTTP_SERVICE_CONFIG_SSL_SET is returned. If the QueryType is // --------------------------------+---------------------------------
// HttpServiceConfigQueryNext, then the next instance of // HttpServiceConfigSSLCertInfo | HTTP_SERVICE_CONFIG_SSL_QUERY
// HTTP_SERVICE_CONFIG_SSL_SET is returned. In such cases, the dwToken field // HttpServiceConfigSSLSniCertInfo | HTTP_SERVICE_CONFIG_SSL_SNI_QUERY
// represents the cursor. For the first item, dwToken has to be 0. // HttpServiceConfigSslCcsCertInfo | HTTP_SERVICE_CONFIG_SSL_CCS_QUERY
// For subsequent items, dwToken has to be incremented by 1, //
// until ERROR_NO_MORE_ITEMS is returned. // If QueryDesc is HttpServiceConfigQueryExact, then the one particular record
// is returned. If the QueryType is HttpServiceConfigQueryNext, then the next
// instance is returned. In such cases, the dwToken field represents the cursor.
// To retrieve the first item, dwToken has to be 0. For retrieving subsequent
// items, dwToken has to be incremented by 1, until ERROR_NO_MORE_ITEMS is
// returned.
// //
typedef struct _HTTP_SERVICE_CONFIG_SSL_QUERY typedef struct _HTTP_SERVICE_CONFIG_SSL_QUERY
{ {
HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc; HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc;
HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc; HTTP_SERVICE_CONFIG_SSL_KEY KeyDesc;
DWORD dwToken; DWORD dwToken;
} HTTP_SERVICE_CONFIG_SSL_QUERY, *PHTTP_SERVICE_CONFIG_SSL_QUERY; } HTTP_SERVICE_CONFIG_SSL_QUERY, *PHTTP_SERVICE_CONFIG_SSL_QUERY;
#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
typedef struct _HTTP_SERVICE_CONFIG_SSL_SNI_QUERY
{
HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc;
HTTP_SERVICE_CONFIG_SSL_SNI_KEY KeyDesc;
DWORD dwToken;
} HTTP_SERVICE_CONFIG_SSL_SNI_QUERY, *PHTTP_SERVICE_CONFIG_SSL_SNI_QUERY;
typedef struct _HTTP_SERVICE_CONFIG_SSL_CCS_QUERY
{
HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc;
HTTP_SERVICE_CONFIG_SSL_CCS_KEY KeyDesc;
DWORD dwToken;
} HTTP_SERVICE_CONFIG_SSL_CCS_QUERY, *PHTTP_SERVICE_CONFIG_SSL_CCS_QUERY;
#endif
// //
// Set/Delete IP Listen-Only List record // Set/Delete IP Listen-Only List record
// //
// Used as a parameter to both HttpSetServiceConfiguration() and // Used as a parameter to both HttpSetServiceConfiguration() and
// HttpDeleteServiceConfiguration() functions. // HttpDeleteServiceConfiguration() functions.
// //
typedef struct _HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM typedef struct _HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM
{ {
USHORT AddrLength; USHORT AddrLength;
skipping to change at line 2157 skipping to change at line 2223
// //
// NOTE: MUST be called once before all other APIs // NOTE: MUST be called once before all other APIs
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpInitialize( HttpInitialize(
IN HTTPAPI_VERSION Version, IN HTTPAPI_VERSION Version,
IN ULONG Flags, IN ULONG Flags,
__reserved IN OUT PVOID pReserved _Reserved_ IN OUT PVOID pReserved
); );
// NOTE: MUST be called after final API call returns. // NOTE: MUST be called after final API call returns.
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpTerminate( HttpTerminate(
IN ULONG Flags, IN ULONG Flags,
__reserved IN OUT PVOID pReserved _Reserved_ IN OUT PVOID pReserved
); );
// //
// HTTP Request Queue manipulation APIs. // HTTP Request Queue manipulation APIs.
// //
// This API is maintained for backward competibility for the first // This API is maintained for backward competibility for the first
// version of the HTTPAPI and should not be used. Instead the new // version of the HTTPAPI and should not be used. Instead the new
// HttpCreateRequestQueue() API must be used. // HttpCreateRequestQueue() API must be used.
// //
// Use CloseHandle() to release the handles returned by // Use CloseHandle() to release the handles returned by
// HttpCreateHttpHandle() API. // HttpCreateHttpHandle() API.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpCreateHttpHandle( HttpCreateHttpHandle(
OUT PHANDLE pReqQueueHandle, OUT PHANDLE pReqQueueHandle,
__reserved IN ULONG Reserved _Reserved_ ULONG Reserved
); );
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// //
// Extended Request Queue manipulation APIs. // Extended Request Queue manipulation APIs.
// //
// Use HttpCloseRequestQueue() API to close the handles // Use HttpCloseRequestQueue() API to close the handles
// created by the HttpCreateRequestQueue API. // created by the HttpCreateRequestQueue API.
// //
skipping to change at line 2222 skipping to change at line 2288
HttpCloseRequestQueue( HttpCloseRequestQueue(
IN HANDLE ReqQueueHandle IN HANDLE ReqQueueHandle
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSetRequestQueueProperty( HttpSetRequestQueueProperty(
IN HANDLE Handle, IN HANDLE Handle,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__in_bcount(PropertyInformationLength) IN PVOID pPropertyInformation, _In_reads_bytes_(PropertyInformationLength) IN PVOID pPropertyInformation,
IN ULONG PropertyInformationLength, IN ULONG PropertyInformationLength,
__reserved IN ULONG Reserved, _Reserved_ IN ULONG Reserved,
__reserved IN PVOID pReserved _Reserved_ IN PVOID pReserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpQueryRequestQueueProperty( HttpQueryRequestQueueProperty(
IN HANDLE Handle, IN HANDLE Handle,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__out_bcount_part(PropertyInformationLength, *pReturnLength) _Out_writes_bytes_to_opt_(PropertyInformationLength, *pReturnLength)
OUT PVOID pPropertyInformation, OUT PVOID pPropertyInformation,
IN ULONG PropertyInformationLength, IN ULONG PropertyInformationLength,
__reserved IN ULONG Reserved, _Reserved_ IN ULONG Reserved,
__out_opt OUT PULONG pReturnLength OPTIONAL, _Out_opt_ OUT PULONG pReturnLength OPTIONAL,
__reserved IN PVOID pReserved _Reserved_ IN PVOID pReserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpShutdownRequestQueue( HttpShutdownRequestQueue(
IN HANDLE ReqQueueHandle IN HANDLE ReqQueueHandle
); );
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
skipping to change at line 2262 skipping to change at line 2328
// SSL APIs. // SSL APIs.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpReceiveClientCertificate( HttpReceiveClientCertificate(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_CONNECTION_ID ConnectionId, IN HTTP_CONNECTION_ID ConnectionId,
IN ULONG Flags, IN ULONG Flags,
__out_bcount_part(SslClientCertInfoSize, *pBytesReceived) _Out_writes_bytes_to_(SslClientCertInfoSize, *pBytesReceived)
OUT PHTTP_SSL_CLIENT_CERT_INFO pSslClientCertInfo, OUT PHTTP_SSL_CLIENT_CERT_INFO pSslClientCertInfo,
IN ULONG SslClientCertInfoSize, IN ULONG SslClientCertInfoSize,
__out_opt OUT PULONG pBytesReceived OPTIONAL, _Out_opt_ OUT PULONG pBytesReceived OPTIONAL,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
// //
// Server Session APIs. // Server Session APIs.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpCreateServerSession( HttpCreateServerSession(
IN HTTPAPI_VERSION Version, IN HTTPAPI_VERSION Version,
OUT PHTTP_SERVER_SESSION_ID pServerSessionId, OUT PHTTP_SERVER_SESSION_ID pServerSessionId,
__reserved IN ULONG Reserved _Reserved_ IN ULONG Reserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpCloseServerSession( HttpCloseServerSession(
IN HTTP_SERVER_SESSION_ID ServerSessionId IN HTTP_SERVER_SESSION_ID ServerSessionId
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpQueryServerSessionProperty( HttpQueryServerSessionProperty(
IN HTTP_SERVER_SESSION_ID ServerSessionId, IN HTTP_SERVER_SESSION_ID ServerSessionId,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__out_bcount_part(PropertyInformationLength, *pReturnLength) _Out_writes_bytes_to_opt_(PropertyInformationLength, *pReturnLength)
OUT PVOID pPropertyInformation, OUT PVOID pPropertyInformation,
IN ULONG PropertyInformationLength, IN ULONG PropertyInformationLength,
__out_opt OUT PULONG pReturnLength OPTIONAL _Out_opt_ OUT PULONG pReturnLength OPTIONAL
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSetServerSessionProperty( HttpSetServerSessionProperty(
IN HTTP_SERVER_SESSION_ID ServerSessionId, IN HTTP_SERVER_SESSION_ID ServerSessionId,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__in_bcount(PropertyInformationLength) IN PVOID pPropertyInformation, _In_reads_bytes_(PropertyInformationLength) IN PVOID pPropertyInformation,
IN ULONG PropertyInformationLength IN ULONG PropertyInformationLength
); );
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
// //
// Url Configuration APIs. Can only be used for V1 request queues. // Url Configuration APIs. Can only be used for V1 request queues.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpAddUrl( HttpAddUrl(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN PCWSTR pFullyQualifiedUrl, IN PCWSTR pFullyQualifiedUrl,
__reserved IN PVOID pReserved _Reserved_ PVOID pReserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpRemoveUrl( HttpRemoveUrl(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN PCWSTR pFullyQualifiedUrl IN PCWSTR pFullyQualifiedUrl
); );
skipping to change at line 2348 skipping to change at line 2414
// //
// Url Group APIs. // Url Group APIs.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpCreateUrlGroup( HttpCreateUrlGroup(
IN HTTP_SERVER_SESSION_ID ServerSessionId, IN HTTP_SERVER_SESSION_ID ServerSessionId,
OUT PHTTP_URL_GROUP_ID pUrlGroupId, OUT PHTTP_URL_GROUP_ID pUrlGroupId,
__reserved IN ULONG Reserved _Reserved_ IN ULONG Reserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpCloseUrlGroup( HttpCloseUrlGroup(
IN HTTP_URL_GROUP_ID UrlGroupId IN HTTP_URL_GROUP_ID UrlGroupId
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpAddUrlToUrlGroup( HttpAddUrlToUrlGroup(
IN HTTP_URL_GROUP_ID UrlGroupId, IN HTTP_URL_GROUP_ID UrlGroupId,
IN PCWSTR pFullyQualifiedUrl, IN PCWSTR pFullyQualifiedUrl,
IN HTTP_URL_CONTEXT UrlContext OPTIONAL, IN HTTP_URL_CONTEXT UrlContext OPTIONAL,
__reserved IN ULONG Reserved _Reserved_ IN ULONG Reserved
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpRemoveUrlFromUrlGroup( HttpRemoveUrlFromUrlGroup(
IN HTTP_URL_GROUP_ID UrlGroupId, IN HTTP_URL_GROUP_ID UrlGroupId,
IN PCWSTR pFullyQualifiedUrl, IN PCWSTR pFullyQualifiedUrl,
IN ULONG Flags IN ULONG Flags
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSetUrlGroupProperty( HttpSetUrlGroupProperty(
IN HTTP_URL_GROUP_ID UrlGroupId, IN HTTP_URL_GROUP_ID UrlGroupId,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__in_bcount(PropertyInformationLength) IN PVOID pPropertyInformation, _In_reads_bytes_(PropertyInformationLength) IN PVOID pPropertyInformation,
IN ULONG PropertyInformationLength IN ULONG PropertyInformationLength
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpQueryUrlGroupProperty( HttpQueryUrlGroupProperty(
IN HTTP_URL_GROUP_ID UrlGroupId, IN HTTP_URL_GROUP_ID UrlGroupId,
IN HTTP_SERVER_PROPERTY Property, IN HTTP_SERVER_PROPERTY Property,
__out_bcount_part(PropertyInformationLength, *pReturnLength) _Out_writes_bytes_to_opt_(PropertyInformationLength, *pReturnLength)
OUT PVOID pPropertyInformation, OUT PVOID pPropertyInformation,
IN ULONG PropertyInformationLength, IN ULONG PropertyInformationLength,
__out_opt OUT PULONG pReturnLength OPTIONAL _Out_opt_ OUT PULONG pReturnLength OPTIONAL
); );
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
HTTPAPI_LINKAGE
ULONG
WINAPI
HttpPrepareUrl(
_Reserved_ PVOID Reserved,
_Reserved_ ULONG Flags,
_In_ PCWSTR Url,
_Outptr_ PWSTR *PreparedUrl
);
#endif
// //
// HTTP Server I/O APIs. // HTTP Server I/O APIs.
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpReceiveHttpRequest( HttpReceiveHttpRequest(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
__out_bcount_part(RequestBufferLength, *pBytesReceived) _Out_writes_bytes_to_(RequestBufferLength, *pBytesReturned)
OUT PHTTP_REQUEST pRequestBuffer, OUT PHTTP_REQUEST pRequestBuffer,
IN ULONG RequestBufferLength, IN ULONG RequestBufferLength,
__out_opt OUT PULONG pBytesReceived OPTIONAL, _Out_opt_ OUT PULONG pBytesReturned OPTIONAL,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpReceiveRequestEntityBody( HttpReceiveRequestEntityBody(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
__out_bcount_part(BufferLength, *pBytesReceived) OUT PVOID pBuffer, _Out_writes_bytes_to_(EntityBufferLength, *pBytesReturned) PVOID pBuffer,
IN ULONG BufferLength, IN ULONG EntityBufferLength,
__out_opt OUT PULONG pBytesReceived OPTIONAL, _Out_opt_ OUT PULONG pBytesReturned OPTIONAL,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSendHttpResponse( HttpSendHttpResponse(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
IN PHTTP_RESPONSE pHttpResponse, IN PHTTP_RESPONSE pHttpResponse,
IN PHTTP_CACHE_POLICY pCachePolicy OPTIONAL, IN PHTTP_CACHE_POLICY pCachePolicy OPTIONAL,
OUT PULONG pBytesSent OPTIONAL, OUT PULONG pBytesSent OPTIONAL,
OUT PVOID pReserved1 OPTIONAL, // must be NULL _Reserved_ PVOID pReserved1, // must be NULL
IN ULONG Reserved2 OPTIONAL, // must be 0 _Reserved_ ULONG Reserved2, // must be 0
IN LPOVERLAPPED pOverlapped OPTIONAL, IN LPOVERLAPPED pOverlapped OPTIONAL,
IN PHTTP_LOG_DATA pLogData OPTIONAL IN PHTTP_LOG_DATA pLogData OPTIONAL
); );
#else // _WIN32_WINNT >= 0x0600 #else // _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSendHttpResponse( HttpSendHttpResponse(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
IN PHTTP_RESPONSE pHttpResponse, IN PHTTP_RESPONSE pHttpResponse,
IN PVOID pReserved1 OPTIONAL, // must be NULL IN PVOID pReserved1 OPTIONAL, // must be NULL
OUT PULONG pBytesSent OPTIONAL, OUT PULONG pBytesSent OPTIONAL,
OUT PVOID pReserved2 OPTIONAL, // must be NULL _Reserved_ PVOID pReserved2, // must be NULL
IN ULONG Reserved3 OPTIONAL, // must be 0 _Reserved_ ULONG Reserved3, // must be 0
IN LPOVERLAPPED pOverlapped OPTIONAL, IN LPOVERLAPPED pOverlapped OPTIONAL,
IN PVOID pReserved4 OPTIONAL // must be NULL IN PVOID pReserved4 OPTIONAL // must be NULL
); );
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSendResponseEntityBody( HttpSendResponseEntityBody(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
IN USHORT EntityChunkCount OPTIONAL, IN USHORT EntityChunkCount OPTIONAL,
__in_ecount_opt(EntityChunkCount) _In_reads_opt_(EntityChunkCount)
IN PHTTP_DATA_CHUNK pEntityChunks OPTIONAL, IN PHTTP_DATA_CHUNK pEntityChunks OPTIONAL,
OUT PULONG pBytesSent OPTIONAL, OUT PULONG pBytesSent OPTIONAL,
OUT PVOID pReserved1 OPTIONAL, // must be NULL _Reserved_ PVOID pReserved1 OPTIONAL, // must be NULL
IN ULONG Reserved2 OPTIONAL, // must be 0 _Reserved_ ULONG Reserved2 OPTIONAL, // must be 0
IN LPOVERLAPPED pOverlapped OPTIONAL, IN LPOVERLAPPED pOverlapped OPTIONAL,
IN PHTTP_LOG_DATA pLogData OPTIONAL IN PHTTP_LOG_DATA pLogData OPTIONAL
); );
#else // _WIN32_WINNT >= 0x0600 #else // _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSendResponseEntityBody( HttpSendResponseEntityBody(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_REQUEST_ID RequestId, IN HTTP_REQUEST_ID RequestId,
IN ULONG Flags, IN ULONG Flags,
IN USHORT EntityChunkCount OPTIONAL, IN USHORT EntityChunkCount OPTIONAL,
__in_ecount_opt(EntityChunkCount) _In_reads_opt_(EntityChunkCount)
IN PHTTP_DATA_CHUNK pEntityChunks OPTIONAL, IN PHTTP_DATA_CHUNK pEntityChunks OPTIONAL,
OUT PULONG pBytesSent OPTIONAL, OUT PULONG pBytesSent OPTIONAL,
OUT PVOID pReserved1 OPTIONAL, // must be NULL _Reserved_ PVOID pReserved1 OPTIONAL, // must be NULL
IN ULONG Reserved2 OPTIONAL, // must be 0 _Reserved_ ULONG Reserved2 OPTIONAL, // must be 0
IN LPOVERLAPPED pOverlapped OPTIONAL, IN LPOVERLAPPED pOverlapped OPTIONAL,
IN PVOID pReserved3 OPTIONAL // must be NULL IN PVOID pReserved3 OPTIONAL // must be NULL
); );
#endif // _WIN32_WINNT >= 0x0600 #endif // _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpWaitForDisconnect( HttpWaitForDisconnect(
skipping to change at line 2527 skipping to change at line 2607
); );
#if _WIN32_WINNT >= 0x0600 #if _WIN32_WINNT >= 0x0600
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpWaitForDisconnectEx( HttpWaitForDisconnectEx(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN HTTP_CONNECTION_ID ConnectionId, IN HTTP_CONNECTION_ID ConnectionId,
__reserved IN ULONG Reserved OPTIONAL, _Reserved_ IN ULONG Reserved OPTIONAL,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI 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
skipping to change at line 2582 skipping to change at line 2662
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpReadFragmentFromCache( HttpReadFragmentFromCache(
IN HANDLE ReqQueueHandle, IN HANDLE ReqQueueHandle,
IN PCWSTR pUrlPrefix, IN PCWSTR pUrlPrefix,
IN PHTTP_BYTE_RANGE pByteRange OPTIONAL, IN PHTTP_BYTE_RANGE pByteRange OPTIONAL,
__out_bcount_part(BufferLength, *pBytesRead) OUT PVOID pBuffer, _Out_writes_bytes_to_(BufferLength, *pBytesRead) PVOID pBuffer,
IN ULONG BufferLength, IN ULONG BufferLength,
OUT PULONG pBytesRead OPTIONAL, _Out_opt_ PULONG pBytesRead,
IN LPOVERLAPPED pOverlapped OPTIONAL IN LPOVERLAPPED pOverlapped OPTIONAL
); );
// //
// Server configuration APIs // Server configuration APIs
// //
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpSetServiceConfiguration( HttpSetServiceConfiguration(
__reserved IN HANDLE ServiceHandle, _Reserved_ IN HANDLE ServiceHandle,
IN HTTP_SERVICE_CONFIG_ID ConfigId, IN HTTP_SERVICE_CONFIG_ID ConfigId,
__in_bcount(ConfigInformationLength) IN PVOID pConfigInformation, _In_reads_bytes_(ConfigInformationLength) IN PVOID pConfigInformation,
IN ULONG ConfigInformationLength, IN ULONG ConfigInformationLength,
__reserved IN LPOVERLAPPED pOverlapped _Reserved_ IN LPOVERLAPPED pOverlapped
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpDeleteServiceConfiguration( HttpDeleteServiceConfiguration(
__reserved IN HANDLE ServiceHandle, _Reserved_ IN HANDLE ServiceHandle,
IN HTTP_SERVICE_CONFIG_ID ConfigId, IN HTTP_SERVICE_CONFIG_ID ConfigId,
__in_bcount(ConfigInformationLength) IN PVOID pConfigInformation, _In_reads_bytes_(ConfigInformationLength) IN PVOID pConfigInformation,
IN ULONG ConfigInformationLength, IN ULONG ConfigInformationLength,
__reserved IN LPOVERLAPPED pOverlapped _Reserved_ IN LPOVERLAPPED pOverlapped
); );
HTTPAPI_LINKAGE HTTPAPI_LINKAGE
ULONG ULONG
WINAPI WINAPI
HttpQueryServiceConfiguration( HttpQueryServiceConfiguration(
__reserved IN HANDLE ServiceHandle, _Reserved_ IN HANDLE ServiceHandle,
IN HTTP_SERVICE_CONFIG_ID ConfigId, IN HTTP_SERVICE_CONFIG_ID ConfigId,
__in_bcount_opt(InputConfigInformationLength) _In_reads_bytes_opt_(InputLength) IN PVOID pInput OPTIONAL,
IN PVOID pInputConfigInformation OPTIONAL, IN ULONG InputLength OPTIONAL,
IN ULONG InputConfigInformationLength OPTIONAL, _Out_writes_bytes_to_opt_(OutputLength, *pReturnLength)
__out_bcount_part_opt(OutputConfigInformationLength, *pReturnLength) OUT PVOID pOutput OPTIONAL,
OUT PVOID pOutputConfigInformation OPTIONAL, IN ULONG OutputLength OPTIONAL,
IN ULONG OutputConfigInformationLength OPTIONAL, _Out_opt_ OUT PULONG pReturnLength OPTIONAL,
__out_opt OUT PULONG pReturnLength OPTIONAL, _Reserved_ IN LPOVERLAPPED pOverlapped
__reserved IN LPOVERLAPPED pOverlapped
); );
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"
#endif // __cplusplus #endif // __cplusplus
#endif // _WIN32_WINNT >= 0x0501 #endif // _WIN32_WINNT >= 0x0501
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // __HTTP_H__ #endif // __HTTP_H__
 End of changes. 62 change blocks. 
93 lines changed or deleted 175 lines changed or added

This html diff was produced by rfcdiff 1.41.