diff options
Diffstat (limited to 'vendor/winapi/src/um/http.rs')
-rw-r--r-- | vendor/winapi/src/um/http.rs | 1096 |
1 files changed, 0 insertions, 1096 deletions
diff --git a/vendor/winapi/src/um/http.rs b/vendor/winapi/src/um/http.rs deleted file mode 100644 index 71d4109..0000000 --- a/vendor/winapi/src/um/http.rs +++ /dev/null @@ -1,1096 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! HTTP API specification -use shared::guiddef::GUID; -use shared::minwindef::{DWORD, PUCHAR, PULONG, UCHAR, ULONG, USHORT}; -use shared::sspi::SECURITY_STATUS; -use shared::ws2def::{PSOCKADDR, SOCKADDR_STORAGE}; -use um::minwinbase::{LPOVERLAPPED, PSECURITY_ATTRIBUTES}; -use um::winnt::{ - ANYSIZE_ARRAY, BOOLEAN, HANDLE, PCHAR, PCSTR, PCWSTR, PHANDLE, PSECURITY_DESCRIPTOR, PVOID, - PWCHAR, PWSTR, ULARGE_INTEGER, ULONGLONG, -}; -pub const HTTP_INITIALIZE_SERVER: ULONG = 0x00000001; -pub const HTTP_INITIALIZE_CONFIG: ULONG = 0x00000002; -pub const HTTP_DEMAND_CBT: ULONG = 0x00000004; -ENUM!{enum HTTP_SERVER_PROPERTY { - HttpServerAuthenticationProperty, - HttpServerLoggingProperty, - HttpServerQosProperty, - HttpServerTimeoutsProperty, - HttpServerQueueLengthProperty, - HttpServerStateProperty, - HttpServer503VerbosityProperty, - HttpServerBindingProperty, - HttpServerExtendedAuthenticationProperty, - HttpServerListenEndpointProperty, - HttpServerChannelBindProperty, - HttpServerProtectionLevelProperty, -}} -pub type PHTTP_SERVER_PROPERTY = *mut HTTP_SERVER_PROPERTY; -STRUCT!{struct HTTP_PROPERTY_FLAGS { - BitFields: ULONG, -}} -BITFIELD!{HTTP_PROPERTY_FLAGS BitFields: ULONG [ - Present set_Present[0..1], -]} -pub type PHTTP_PROPERTY_FLAGS = *mut HTTP_PROPERTY_FLAGS; -ENUM!{enum HTTP_ENABLED_STATE { - HttpEnabledStateActive, - HttpEnabledStateInactive, -}} -pub type PHTTP_ENABLED_STATE = *mut HTTP_ENABLED_STATE; -STRUCT!{struct HTTP_STATE_INFO { - Flags: HTTP_PROPERTY_FLAGS, - State: HTTP_ENABLED_STATE, -}} -pub type PHTTP_STATE_INFO = *mut HTTP_STATE_INFO; -ENUM!{enum HTTP_503_RESPONSE_VERBOSITY { - Http503ResponseVerbosityBasic, - Http503ResponseVerbosityLimited, - Http503ResponseVerbosityFull, -}} -pub type PHTTP_503_RESPONSE_VERBOSITY = *mut HTTP_503_RESPONSE_VERBOSITY; -ENUM!{enum HTTP_QOS_SETTING_TYPE { - HttpQosSettingTypeBandwidth, - HttpQosSettingTypeConnectionLimit, - HttpQosSettingTypeFlowRate, -}} -pub type PHTTP_QOS_SETTING_TYPE = *mut HTTP_QOS_SETTING_TYPE; -STRUCT!{struct HTTP_QOS_SETTING_INFO { - QosType: HTTP_QOS_SETTING_TYPE, - QosSetting: PVOID, -}} -pub type PHTTP_QOS_SETTING_INFO = *mut HTTP_QOS_SETTING_INFO; -STRUCT!{struct HTTP_CONNECTION_LIMIT_INFO { - Flags: HTTP_PROPERTY_FLAGS, - MaxConnections: ULONG, -}} -pub type PHTTP_CONNECTION_LIMIT_INFO = *mut HTTP_CONNECTION_LIMIT_INFO; -STRUCT!{struct HTTP_BANDWIDTH_LIMIT_INFO { - Flags: HTTP_PROPERTY_FLAGS, - MaxBandwidth: ULONG, -}} -pub type PHTTP_BANDWIDTH_LIMIT_INFO = *mut HTTP_BANDWIDTH_LIMIT_INFO; -STRUCT!{struct HTTP_FLOWRATE_INFO { - Flags: HTTP_PROPERTY_FLAGS, - MaxBandwidth: ULONG, - MaxPeakBandwidth: ULONG, - BurstSize: ULONG, -}} -pub type PHTTP_FLOWRATE_INFO = *mut HTTP_FLOWRATE_INFO; -pub const HTTP_MIN_ALLOWED_BANDWIDTH_THROTTLING_RATE: ULONG = 1024; -pub const HTTP_LIMIT_INFINITE: ULONG = !0; -ENUM!{enum HTTP_SERVICE_CONFIG_TIMEOUT_KEY { - IdleConnectionTimeout = 0, - HeaderWaitTimeout, -}} -pub type PHTTP_SERVICE_CONFIG_TIMEOUT_KEY = *mut HTTP_SERVICE_CONFIG_TIMEOUT_KEY; -pub type HTTP_SERVICE_CONFIG_TIMEOUT_PARAM = USHORT; -pub type PHTTP_SERVICE_CONFIG_TIMEOUT_PARAM = *mut USHORT; -STRUCT!{struct HTTP_SERVICE_CONFIG_TIMEOUT_SET { - KeyDesc: HTTP_SERVICE_CONFIG_TIMEOUT_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_TIMEOUT_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_TIMEOUT_SET = *mut HTTP_SERVICE_CONFIG_TIMEOUT_SET; -STRUCT!{struct HTTP_TIMEOUT_LIMIT_INFO { - Flags: HTTP_PROPERTY_FLAGS, - EntityBody: USHORT, - DrainEntityBody: USHORT, - RequestQueue: USHORT, - IdleConnection: USHORT, - HeaderWait: USHORT, - MinSendRate: ULONG, -}} -pub type PHTTP_TIMEOUT_LIMIT_INFO = *mut HTTP_TIMEOUT_LIMIT_INFO; -STRUCT!{struct HTTP_LISTEN_ENDPOINT_INFO { - Flags: HTTP_PROPERTY_FLAGS, - EnableSharing: BOOLEAN, -}} -pub type PHTTP_LISTEN_ENDPOINT_INFO = *mut HTTP_LISTEN_ENDPOINT_INFO; -STRUCT!{struct HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS { - DomainNameLength: USHORT, - DomainName: PWSTR, - RealmLength: USHORT, - Realm: PWSTR, -}} -pub type PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS = *mut HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS; -STRUCT!{struct HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS { - RealmLength: USHORT, - Realm: PWSTR, -}} -pub type PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS = *mut HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS; -pub const HTTP_AUTH_ENABLE_BASIC: ULONG = 0x00000001; -pub const HTTP_AUTH_ENABLE_DIGEST: ULONG = 0x00000002; -pub const HTTP_AUTH_ENABLE_NTLM: ULONG = 0x00000004; -pub const HTTP_AUTH_ENABLE_NEGOTIATE: ULONG = 0x00000008; -pub const HTTP_AUTH_ENABLE_KERBEROS: ULONG = 0x00000010; -pub const HTTP_AUTH_ENABLE_ALL: ULONG = HTTP_AUTH_ENABLE_BASIC | HTTP_AUTH_ENABLE_DIGEST | - HTTP_AUTH_ENABLE_NTLM | HTTP_AUTH_ENABLE_NEGOTIATE | HTTP_AUTH_ENABLE_KERBEROS; -pub const HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING: UCHAR = 0x01; -pub const HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL: UCHAR = 0x02; -STRUCT!{struct HTTP_SERVER_AUTHENTICATION_INFO { - Flags: HTTP_PROPERTY_FLAGS, - AuthSchemes: ULONG, - ReceiveMutualAuth: BOOLEAN, - ReceiveContextHandle: BOOLEAN, - DisableNTLMCredentialCaching: BOOLEAN, - ExFlags: UCHAR, - DigestParams: HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS, - BasicParams: HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS, -}} -pub type PHTTP_SERVER_AUTHENTICATION_INFO = *mut HTTP_SERVER_AUTHENTICATION_INFO; -ENUM!{enum HTTP_SERVICE_BINDING_TYPE { - HttpServiceBindingTypeNone = 0, - HttpServiceBindingTypeW, - HttpServiceBindingTypeA, -}} -STRUCT!{struct HTTP_SERVICE_BINDING_BASE { - Type: HTTP_SERVICE_BINDING_TYPE, -}} -pub type PHTTP_SERVICE_BINDING_BASE = *mut HTTP_SERVICE_BINDING_BASE; -STRUCT!{struct HTTP_SERVICE_BINDING_A { - Base: HTTP_SERVICE_BINDING_BASE, - Buffer: PCHAR, - BufferSize: ULONG, -}} -pub type PHTTP_SERVICE_BINDING_A = *mut HTTP_SERVICE_BINDING_A; -STRUCT!{struct HTTP_SERVICE_BINDING_W { - Base: HTTP_SERVICE_BINDING_BASE, - Buffer: PWCHAR, - BufferSize: ULONG, -}} -pub type PHTTP_SERVICE_BINDING_W = *mut HTTP_SERVICE_BINDING_W; -ENUM!{enum HTTP_AUTHENTICATION_HARDENING_LEVELS { - HttpAuthenticationHardeningLegacy = 0, - HttpAuthenticationHardeningMedium, - HttpAuthenticationHardeningStrict, -}} -pub const HTTP_CHANNEL_BIND_PROXY: ULONG = 0x1; -pub const HTTP_CHANNEL_BIND_PROXY_COHOSTING: ULONG = 0x20; -pub const HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK: ULONG = 0x2; -pub const HTTP_CHANNEL_BIND_DOTLESS_SERVICE: ULONG = 0x4; -pub const HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN: ULONG = 0x8; -pub const HTTP_CHANNEL_BIND_CLIENT_SERVICE: ULONG = 0x10; -STRUCT!{struct HTTP_CHANNEL_BIND_INFO { - Hardening: HTTP_AUTHENTICATION_HARDENING_LEVELS, - Flags: ULONG, - ServiceNames: *mut PHTTP_SERVICE_BINDING_BASE, - NumberOfServiceNames: ULONG, -}} -pub type PHTTP_CHANNEL_BIND_INFO = *mut HTTP_CHANNEL_BIND_INFO; -STRUCT!{struct HTTP_REQUEST_CHANNEL_BIND_STATUS { - ServiceName: PHTTP_SERVICE_BINDING_BASE, - ChannelToken: PUCHAR, - ChannelTokenSize: ULONG, - Flags: ULONG, -}} -pub type PHTTP_REQUEST_CHANNEL_BIND_STATUS = *mut HTTP_REQUEST_CHANNEL_BIND_STATUS; -pub const HTTP_LOG_FIELD_DATE: ULONG = 0x00000001; -pub const HTTP_LOG_FIELD_TIME: ULONG = 0x00000002; -pub const HTTP_LOG_FIELD_CLIENT_IP: ULONG = 0x00000004; -pub const HTTP_LOG_FIELD_USER_NAME: ULONG = 0x00000008; -pub const HTTP_LOG_FIELD_SITE_NAME: ULONG = 0x00000010; -pub const HTTP_LOG_FIELD_COMPUTER_NAME: ULONG = 0x00000020; -pub const HTTP_LOG_FIELD_SERVER_IP: ULONG = 0x00000040; -pub const HTTP_LOG_FIELD_METHOD: ULONG = 0x00000080; -pub const HTTP_LOG_FIELD_URI_STEM: ULONG = 0x00000100; -pub const HTTP_LOG_FIELD_URI_QUERY: ULONG = 0x00000200; -pub const HTTP_LOG_FIELD_STATUS: ULONG = 0x00000400; -pub const HTTP_LOG_FIELD_WIN32_STATUS: ULONG = 0x00000800; -pub const HTTP_LOG_FIELD_BYTES_SENT: ULONG = 0x00001000; -pub const HTTP_LOG_FIELD_BYTES_RECV: ULONG = 0x00002000; -pub const HTTP_LOG_FIELD_TIME_TAKEN: ULONG = 0x00004000; -pub const HTTP_LOG_FIELD_SERVER_PORT: ULONG = 0x00008000; -pub const HTTP_LOG_FIELD_USER_AGENT: ULONG = 0x00010000; -pub const HTTP_LOG_FIELD_COOKIE: ULONG = 0x00020000; -pub const HTTP_LOG_FIELD_REFERER: ULONG = 0x00040000; -pub const HTTP_LOG_FIELD_VERSION: ULONG = 0x00080000; -pub const HTTP_LOG_FIELD_HOST: ULONG = 0x00100000; -pub const HTTP_LOG_FIELD_SUB_STATUS: ULONG = 0x00200000; -pub const HTTP_LOG_FIELD_CLIENT_PORT: ULONG = 0x00400000; -pub const HTTP_LOG_FIELD_URI: ULONG = 0x00800000; -pub const HTTP_LOG_FIELD_SITE_ID: ULONG = 0x01000000; -pub const HTTP_LOG_FIELD_REASON: ULONG = 0x02000000; -pub const HTTP_LOG_FIELD_QUEUE_NAME: ULONG = 0x04000000; -ENUM!{enum HTTP_LOGGING_TYPE { - HttpLoggingTypeW3C, - HttpLoggingTypeIIS, - HttpLoggingTypeNCSA, - HttpLoggingTypeRaw, -}} -ENUM!{enum HTTP_LOGGING_ROLLOVER_TYPE { - HttpLoggingRolloverSize, - HttpLoggingRolloverDaily, - HttpLoggingRolloverWeekly, - HttpLoggingRolloverMonthly, - HttpLoggingRolloverHourly, -}} -pub const HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE: ULONG = 1 * 1024 * 1024; -pub const HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER: ULONG = 0x00000001; -pub const HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION: ULONG = 0x00000002; -pub const HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY: ULONG = 0x00000004; -pub const HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY: ULONG = 0x00000008; -STRUCT!{struct HTTP_LOGGING_INFO { - Flags: HTTP_PROPERTY_FLAGS, - LoggingFlags: ULONG, - SoftwareName: PCWSTR, - SoftwareNameLength: USHORT, - DirectoryNameLength: USHORT, - DirectoryName: PCWSTR, - Format: HTTP_LOGGING_TYPE, - Fields: ULONG, - pExtFields: PVOID, - NumOfExtFields: USHORT, - MaxRecordSize: USHORT, - RolloverType: HTTP_LOGGING_ROLLOVER_TYPE, - RolloverSize: ULONG, - pSecurityDescriptor: PSECURITY_DESCRIPTOR, -}} -pub type PHTTP_LOGGING_INFO = *mut HTTP_LOGGING_INFO; -STRUCT!{struct HTTP_BINDING_INFO { - Flags: HTTP_PROPERTY_FLAGS, - RequestQueueHandle: HANDLE, -}} -pub type PHTTP_BINDING_INFO = *mut HTTP_BINDING_INFO; -ENUM!{enum HTTP_PROTECTION_LEVEL_TYPE { - HttpProtectionLevelUnrestricted, - HttpProtectionLevelEdgeRestricted, - HttpProtectionLevelRestricted, -}} -pub type PHTTP_PROTECTION_LEVEL_TYPE = *mut HTTP_PROTECTION_LEVEL_TYPE; -STRUCT!{struct HTTP_PROTECTION_LEVEL_INFO { - Flags: HTTP_PROPERTY_FLAGS, - Level: HTTP_PROTECTION_LEVEL_TYPE, -}} -pub type PHTTP_PROTECTION_LEVEL_INFO = *mut HTTP_PROTECTION_LEVEL_INFO; -pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING: ULONG = 0x00000001; -pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER: ULONG = 0x00000002; -pub const HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY: ULONG = 0x00000001; -pub const HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY: ULONG = 0x00000002; -pub const HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER: ULONG = 0x00000001; -pub const HTTP_SEND_RESPONSE_FLAG_DISCONNECT: ULONG = 0x00000001; -pub const HTTP_SEND_RESPONSE_FLAG_MORE_DATA: ULONG = 0x00000002; -pub const HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA: ULONG = 0x00000004; -pub const HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING: ULONG = 0x00000008; -pub const HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES: ULONG = 0x00000020; -pub const HTTP_SEND_RESPONSE_FLAG_OPAQUE: ULONG = 0x00000040; -pub const HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE: ULONG = 0x00000001; -pub type HTTP_OPAQUE_ID = ULONGLONG; -pub type PHTTP_OPAQUE_ID = *mut ULONGLONG; -pub type HTTP_REQUEST_ID = HTTP_OPAQUE_ID; -pub type PHTTP_REQUEST_ID = *mut HTTP_OPAQUE_ID; -pub type HTTP_CONNECTION_ID = HTTP_OPAQUE_ID; -pub type PHTTP_CONNECTION_ID = *mut HTTP_OPAQUE_ID; -pub type HTTP_RAW_CONNECTION_ID = HTTP_OPAQUE_ID; -pub type PHTTP_RAW_CONNECTION_ID = *mut HTTP_OPAQUE_ID; -pub type HTTP_URL_GROUP_ID = HTTP_OPAQUE_ID; -pub type PHTTP_URL_GROUP_ID = *mut HTTP_OPAQUE_ID; -pub type HTTP_SERVER_SESSION_ID = HTTP_OPAQUE_ID; -pub type PHTTP_SERVER_SESSION_ID = *mut HTTP_OPAQUE_ID; -pub const HTTP_BYTE_RANGE_TO_EOF: ULONGLONG = !0; -STRUCT!{struct HTTP_BYTE_RANGE { - StartingOffset: ULARGE_INTEGER, - Length: ULARGE_INTEGER, -}} -pub type PHTTP_BYTE_RANGE = *mut HTTP_BYTE_RANGE; -STRUCT!{struct HTTP_VERSION { - MajorVersion: USHORT, - MinorVersion: USHORT, -}} -pub type PHTTP_VERSION = *mut HTTP_VERSION; -pub const HTTP_VERSION_UNKNOWN: HTTP_VERSION = HTTP_VERSION { MajorVersion: 0, MinorVersion: 0 }; -pub const HTTP_VERSION_0_9: HTTP_VERSION = HTTP_VERSION { MajorVersion: 0, MinorVersion: 9 }; -pub const HTTP_VERSION_1_0: HTTP_VERSION = HTTP_VERSION { MajorVersion: 1, MinorVersion: 0 }; -pub const HTTP_VERSION_1_1: HTTP_VERSION = HTTP_VERSION { MajorVersion: 1, MinorVersion: 1 }; -#[inline] -pub fn HTTP_SET_VERSION(mut version: HTTP_VERSION, major: USHORT, minor: USHORT) { - version.MajorVersion = major; - version.MinorVersion = minor; -} -#[inline] -pub fn HTTP_EQUAL_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - version.MajorVersion == major && version.MinorVersion == minor -} -#[inline] -pub fn HTTP_GREATER_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - version.MajorVersion > major || (version.MajorVersion == major && version.MinorVersion > minor) -} -#[inline] -pub fn HTTP_LESS_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - version.MajorVersion < major || (version.MajorVersion == major && version.MinorVersion < minor) -} -#[inline] -pub fn HTTP_NOT_EQUAL_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - !HTTP_EQUAL_VERSION(version, major, minor) -} -#[inline] -pub fn HTTP_GREATER_EQUAL_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - !HTTP_LESS_VERSION(version, major, minor) -} -#[inline] -pub fn HTTP_LESS_EQUAL_VERSION(version: HTTP_VERSION, major: USHORT, minor: USHORT) -> bool { - !HTTP_GREATER_VERSION(version, major, minor) -} -ENUM!{enum HTTP_VERB { - HttpVerbUnparsed, - HttpVerbUnknown, - HttpVerbInvalid, - HttpVerbOPTIONS, - HttpVerbGET, - HttpVerbHEAD, - HttpVerbPOST, - HttpVerbPUT, - HttpVerbDELETE, - HttpVerbTRACE, - HttpVerbCONNECT, - HttpVerbTRACK, - HttpVerbMOVE, - HttpVerbCOPY, - HttpVerbPROPFIND, - HttpVerbPROPPATCH, - HttpVerbMKCOL, - HttpVerbLOCK, - HttpVerbUNLOCK, - HttpVerbSEARCH, - HttpVerbMaximum, -}} -pub type PHTTP_VERB = *mut HTTP_VERB; -ENUM!{enum HTTP_HEADER_ID { - HttpHeaderCacheControl = 0, - HttpHeaderConnection = 1, - HttpHeaderDate = 2, - HttpHeaderKeepAlive = 3, - HttpHeaderPragma = 4, - HttpHeaderTrailer = 5, - HttpHeaderTransferEncoding = 6, - HttpHeaderUpgrade = 7, - HttpHeaderVia = 8, - HttpHeaderWarning = 9, - HttpHeaderAllow = 10, - HttpHeaderContentLength = 11, - HttpHeaderContentType = 12, - HttpHeaderContentEncoding = 13, - HttpHeaderContentLanguage = 14, - HttpHeaderContentLocation = 15, - HttpHeaderContentMd5 = 16, - HttpHeaderContentRange = 17, - HttpHeaderExpires = 18, - HttpHeaderLastModified = 19, - HttpHeaderAccept = 20, - HttpHeaderAcceptCharset = 21, - HttpHeaderAcceptEncoding = 22, - HttpHeaderAcceptLanguage = 23, - HttpHeaderAuthorization = 24, - HttpHeaderCookie = 25, - HttpHeaderExpect = 26, - HttpHeaderFrom = 27, - HttpHeaderHost = 28, - HttpHeaderIfMatch = 29, - HttpHeaderIfModifiedSince = 30, - HttpHeaderIfNoneMatch = 31, - HttpHeaderIfRange = 32, - HttpHeaderIfUnmodifiedSince = 33, - HttpHeaderMaxForwards = 34, - HttpHeaderProxyAuthorization = 35, - HttpHeaderReferer = 36, - HttpHeaderRange = 37, - HttpHeaderTe = 38, - HttpHeaderTranslate = 39, - HttpHeaderUserAgent = 40, - HttpHeaderRequestMaximum = 41, - HttpHeaderAcceptRanges = 20, - HttpHeaderAge = 21, - HttpHeaderEtag = 22, - HttpHeaderLocation = 23, - HttpHeaderProxyAuthenticate = 24, - HttpHeaderRetryAfter = 25, - HttpHeaderServer = 26, - HttpHeaderSetCookie = 27, - HttpHeaderVary = 28, - HttpHeaderWwwAuthenticate = 29, - HttpHeaderResponseMaximum = 30, - HttpHeaderMaximum = 41, -}} -pub type PHTTP_HEADER_ID = *mut HTTP_HEADER_ID; -STRUCT!{struct HTTP_KNOWN_HEADER { - RawValueLength: USHORT, - pRawValue: PCSTR, -}} -pub type PHTTP_KNOWN_HEADER = *mut HTTP_KNOWN_HEADER; -STRUCT!{struct HTTP_UNKNOWN_HEADER { - NameLength: USHORT, - RawValueLength: USHORT, - pName: PCSTR, - pRawValue: PCSTR, -}} -pub type PHTTP_UNKNOWN_HEADER = *mut HTTP_UNKNOWN_HEADER; -ENUM!{enum HTTP_LOG_DATA_TYPE { - HttpLogDataTypeFields = 0, -}} -pub type PHTTP_LOG_DATA_TYPE = *mut HTTP_LOG_DATA_TYPE; -STRUCT!{struct HTTP_LOG_DATA { - Type: HTTP_LOG_DATA_TYPE, -}} -pub type PHTTP_LOG_DATA = *mut HTTP_LOG_DATA; -STRUCT!{struct HTTP_LOG_FIELDS_DATA { - Base: HTTP_LOG_DATA, - UserNameLength: USHORT, - UriStemLength: USHORT, - ClientIpLength: USHORT, - ServerNameLength: USHORT, - ServiceNameLength: USHORT, - ServerIpLength: USHORT, - MethodLength: USHORT, - UriQueryLength: USHORT, - HostLength: USHORT, - UserAgentLength: USHORT, - CookieLength: USHORT, - ReferrerLength: USHORT, - UserName: PWCHAR, - UriStem: PWCHAR, - ClientIp: PCHAR, - ServerName: PCHAR, - ServiceName: PCHAR, - ServerIp: PCHAR, - Method: PCHAR, - UriQuery: PCHAR, - Host: PCHAR, - UserAgent: PCHAR, - Cookie: PCHAR, - Referrer: PCHAR, - ServerPort: USHORT, - ProtocolStatus: USHORT, - Win32Status: ULONG, - MethodNum: HTTP_VERB, - SubStatus: USHORT, -}} -pub type PHTTP_LOG_FIELDS_DATA = *mut HTTP_LOG_FIELDS_DATA; -ENUM!{enum HTTP_DATA_CHUNK_TYPE { - HttpDataChunkFromMemory, - HttpDataChunkFromFileHandle, - HttpDataChunkFromFragmentCache, - HttpDataChunkFromFragmentCacheEx, - HttpDataChunkMaximum, -}} -pub type PHTTP_DATA_CHUNK_TYPE = *mut HTTP_DATA_CHUNK_TYPE; -STRUCT!{struct HTTP_DATA_CHUNK_FromMemory { - pBuffer: PVOID, - BufferLength: ULONG, -}} -STRUCT!{struct HTTP_DATA_CHUNK_FromFileHandle { - ByteRange: HTTP_BYTE_RANGE, - FileHandle: HANDLE, -}} -STRUCT!{struct HTTP_DATA_CHUNK_FromFragmentCache { - FragmentNameLength: USHORT, - pFragmentName: PCWSTR, -}} -STRUCT!{struct HTTP_DATA_CHUNK_FromFragmentCacheEx { - ByteRange: HTTP_BYTE_RANGE, - pFragmentName: PCWSTR, -}} -UNION!{union HTTP_DATA_CHUNK_u { - [u64; 3], - FromMemory FromMemory_mut: HTTP_DATA_CHUNK_FromMemory, - FromFileHandle FromFileHandle_mut: HTTP_DATA_CHUNK_FromFileHandle, - FromFragmentCache FromFragmentCache_mut: HTTP_DATA_CHUNK_FromFragmentCache, - FromFragmentCacheEx FromFragmentCacheEx_mut: HTTP_DATA_CHUNK_FromFragmentCacheEx, -}} -STRUCT!{struct HTTP_DATA_CHUNK { - DataChunkType: HTTP_DATA_CHUNK_TYPE, - u: HTTP_DATA_CHUNK_u, -}} -pub type PHTTP_DATA_CHUNK = *mut HTTP_DATA_CHUNK; -STRUCT!{struct HTTP_REQUEST_HEADERS { - UnknownHeaderCount: USHORT, - pUnknownHeaders: PHTTP_UNKNOWN_HEADER, - TrailerCount: USHORT, - pTrailers: PHTTP_UNKNOWN_HEADER, - KnownHeaders: [HTTP_KNOWN_HEADER; 41], // FIXME HttpHeaderRequestMaximum -}} -pub type PHTTP_REQUEST_HEADERS = *mut HTTP_REQUEST_HEADERS; -STRUCT!{struct HTTP_RESPONSE_HEADERS { - UnknownHeaderCount: USHORT, - pUnknownHeaders: PHTTP_UNKNOWN_HEADER, - TrailerCount: USHORT, - pTrailers: PHTTP_UNKNOWN_HEADER, - KnownHeaders: [HTTP_KNOWN_HEADER; 30], // FIXME HttpHeaderResponseMaximum -}} -pub type PHTTP_RESPONSE_HEADERS = *mut HTTP_RESPONSE_HEADERS; -STRUCT!{struct HTTP_TRANSPORT_ADDRESS { - pRemoteAddress: PSOCKADDR, - pLocalAddress: PSOCKADDR, -}} -pub type PHTTP_TRANSPORT_ADDRESS = *mut HTTP_TRANSPORT_ADDRESS; -STRUCT!{struct HTTP_COOKED_URL { - FullUrlLength: USHORT, - HostLength: USHORT, - AbsPathLength: USHORT, - QueryStringLength: USHORT, - pFullUrl: PCWSTR, - pHost: PCWSTR, - pAbsPath: PCWSTR, - pQueryString: PCWSTR, -}} -pub type PHTTP_COOKED_URL = *mut HTTP_COOKED_URL; -pub type HTTP_URL_CONTEXT = ULONGLONG; -pub const HTTP_URL_FLAG_REMOVE_ALL: ULONG = 0x00000001; -ENUM!{enum HTTP_AUTH_STATUS { - HttpAuthStatusSuccess, - HttpAuthStatusNotAuthenticated, - HttpAuthStatusFailure, -}} -pub type PHTTP_AUTH_STATUS = *mut HTTP_AUTH_STATUS; -ENUM!{enum HTTP_REQUEST_AUTH_TYPE { - HttpRequestAuthTypeNone = 0, - HttpRequestAuthTypeBasic, - HttpRequestAuthTypeDigest, - HttpRequestAuthTypeNTLM, - HttpRequestAuthTypeNegotiate, - HttpRequestAuthTypeKerberos, -}} -pub type PHTTP_REQUEST_AUTH_TYPE = *mut HTTP_REQUEST_AUTH_TYPE; -STRUCT!{struct HTTP_SSL_CLIENT_CERT_INFO { - CertFlags: ULONG, - CertEncodedSize: ULONG, - pCertEncoded: PUCHAR, - Token: HANDLE, - CertDeniedByMapper: BOOLEAN, -}} -pub type PHTTP_SSL_CLIENT_CERT_INFO = *mut HTTP_SSL_CLIENT_CERT_INFO; -pub const HTTP_RECEIVE_SECURE_CHANNEL_TOKEN: ULONG = 0x1; -STRUCT!{struct HTTP_SSL_INFO { - ServerCertKeySize: USHORT, - ConnectionKeySize: USHORT, - ServerCertIssuerSize: ULONG, - ServerCertSubjectSize: ULONG, - pServerCertIssuer: PCSTR, - pServerCertSubject: PCSTR, - pClientCertInfo: PHTTP_SSL_CLIENT_CERT_INFO, - SslClientCertNegotiated: ULONG, -}} -pub type PHTTP_SSL_INFO = *mut HTTP_SSL_INFO; -ENUM!{enum HTTP_REQUEST_INFO_TYPE { - HttpRequestInfoTypeAuth, - HttpRequestInfoTypeChannelBind, -}} -STRUCT!{struct HTTP_REQUEST_INFO { - InfoType: HTTP_REQUEST_INFO_TYPE, - InfoLength: ULONG, - pInfo: PVOID, -}} -pub type PHTTP_REQUEST_INFO = *mut HTTP_REQUEST_INFO; -pub const HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED: ULONG = 0x00000001; -STRUCT!{struct HTTP_REQUEST_AUTH_INFO { - AuthStatus: HTTP_AUTH_STATUS, - SecStatus: SECURITY_STATUS, - Flags: ULONG, - AuthType: HTTP_REQUEST_AUTH_TYPE, - AccessToken: HANDLE, - ContextAttributes: ULONG, - PackedContextLength: ULONG, - PackedContextType: ULONG, - PackedContext: PVOID, - MutualAuthDataLength: ULONG, - pMutualAuthData: PCHAR, - PackageNameLength: USHORT, - pPackageName: PWSTR, -}} -pub type PHTTP_REQUEST_AUTH_INFO = *mut HTTP_REQUEST_AUTH_INFO; -STRUCT!{struct HTTP_REQUEST_V1 { - Flags: ULONG, - ConnectionId: HTTP_CONNECTION_ID, - RequestId: HTTP_REQUEST_ID, - UrlContext: HTTP_URL_CONTEXT, - Version: HTTP_VERSION, - Verb: HTTP_VERB, - UnknownVerbLength: USHORT, - RawUrlLength: USHORT, - pUnknownVerb: PCSTR, - pRawUrl: PCSTR, - CookedUrl: HTTP_COOKED_URL, - Address: HTTP_TRANSPORT_ADDRESS, - Headers: HTTP_REQUEST_HEADERS, - BytesReceived: ULONGLONG, - EntityChunkCount: USHORT, - pEntityChunks: PHTTP_DATA_CHUNK, - RawConnectionId: HTTP_RAW_CONNECTION_ID, - pSslInfo: PHTTP_SSL_INFO, -}} -pub type PHTTP_REQUEST_V1 = *mut HTTP_REQUEST_V1; -STRUCT!{struct HTTP_REQUEST_V2 { - Base: HTTP_REQUEST_V1, - RequestInfoCount: USHORT, - pRequestInfo: PHTTP_REQUEST_INFO, -}} -pub type PHTTP_REQUEST_V2 = *mut HTTP_REQUEST_V2; -pub type HTTP_REQUEST = HTTP_REQUEST_V2; -pub type PHTTP_REQUEST = *mut HTTP_REQUEST; -pub const HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS: ULONG = 0x00000001; -pub const HTTP_REQUEST_FLAG_IP_ROUTED: ULONG = 0x00000002; -STRUCT!{struct HTTP_RESPONSE_V1 { - Flags: ULONG, - Version: HTTP_VERSION, - StatusCode: USHORT, - ReasonLength: USHORT, - pReason: PCSTR, - Headers: HTTP_RESPONSE_HEADERS, - EntityChunkCount: USHORT, - pEntityChunks: PHTTP_DATA_CHUNK, -}} -pub type PHTTP_RESPONSE_V1 = *mut HTTP_RESPONSE_V1; -pub const HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE: ULONG = 0x00000001; -ENUM!{enum HTTP_RESPONSE_INFO_TYPE { - HttpResponseInfoTypeMultipleKnownHeaders, - HttpResponseInfoTypeAuthenticationProperty, - HttpResponseInfoTypeQoSProperty, - HttpResponseInfoTypeChannelBind, -}} -pub type PHTTP_RESPONSE_INFO_TYPE = *mut HTTP_RESPONSE_INFO_TYPE; -STRUCT!{struct HTTP_RESPONSE_INFO { - Type: HTTP_RESPONSE_INFO_TYPE, - Length: ULONG, - pInfo: PVOID, -}} -pub type PHTTP_RESPONSE_INFO = *mut HTTP_RESPONSE_INFO; -pub const HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER: ULONG = 0x00000001; -STRUCT!{struct HTTP_MULTIPLE_KNOWN_HEADERS { - HeaderId: HTTP_HEADER_ID, - Flags: ULONG, - KnownHeaderCount: USHORT, - KnownHeaders: PHTTP_KNOWN_HEADER, -}} -pub type PHTTP_MULTIPLE_KNOWN_HEADERS = *mut HTTP_MULTIPLE_KNOWN_HEADERS; -STRUCT!{struct HTTP_RESPONSE_V2 { - Base: HTTP_RESPONSE_V1, - ResponseInfoCount: USHORT, - pResponseInfo: PHTTP_RESPONSE_INFO, -}} -pub type PHTTP_RESPONSE_V2 = *mut HTTP_RESPONSE_V2; -pub type HTTP_RESPONSE = HTTP_RESPONSE_V2; -pub type PHTTP_RESPONSE = *mut HTTP_RESPONSE; -STRUCT!{struct HTTPAPI_VERSION { - HttpApiMajorVersion: USHORT, - HttpApiMinorVersion: USHORT, -}} -pub type PHTTPAPI_VERSION = *mut HTTPAPI_VERSION; -pub const HTTPAPI_VERSION_2: HTTPAPI_VERSION = HTTPAPI_VERSION { - HttpApiMajorVersion: 2, - HttpApiMinorVersion: 0, -}; -pub const HTTPAPI_VERSION_1: HTTPAPI_VERSION = HTTPAPI_VERSION { - HttpApiMajorVersion: 1, - HttpApiMinorVersion: 0, -}; -#[inline] -pub fn HTTPAPI_EQUAL_VERSION(version: HTTPAPI_VERSION, major: USHORT, minor: USHORT) -> bool { - version.HttpApiMajorVersion == major && version.HttpApiMinorVersion == minor -} -#[inline] -pub fn HTTPAPI_GREATER_VERSION(version: HTTPAPI_VERSION, major: USHORT, minor: USHORT) -> bool { - version.HttpApiMajorVersion > major || - (version.HttpApiMajorVersion == major && version.HttpApiMinorVersion > minor) -} -#[inline] -pub fn HTTPAPI_LESS_VERSION(version: HTTPAPI_VERSION, major: USHORT, minor: USHORT) -> bool { - version.HttpApiMajorVersion < major || - (version.HttpApiMajorVersion == major && version.HttpApiMinorVersion < minor) -} -#[inline] -pub fn HTTPAPI_VERSION_GREATER_OR_EQUAL( - version: HTTPAPI_VERSION, - major: USHORT, - minor: USHORT, -) -> bool { - !HTTPAPI_LESS_VERSION(version, major, minor) -} -ENUM!{enum HTTP_CACHE_POLICY_TYPE { - HttpCachePolicyNocache, - HttpCachePolicyUserInvalidates, - HttpCachePolicyTimeToLive, - HttpCachePolicyMaximum, -}} -pub type PHTTP_CACHE_POLICY_TYPE = *mut HTTP_CACHE_POLICY_TYPE; -STRUCT!{struct HTTP_CACHE_POLICY { - Policy: HTTP_CACHE_POLICY_TYPE, - SecondsToLive: ULONG, -}} -pub type PHTTP_CACHE_POLICY = *mut HTTP_CACHE_POLICY; -ENUM!{enum HTTP_SERVICE_CONFIG_ID { - HttpServiceConfigIPListenList, - HttpServiceConfigSSLCertInfo, - HttpServiceConfigUrlAclInfo, - HttpServiceConfigTimeout, - HttpServiceConfigCache, - HttpServiceConfigSslSniCertInfo, - HttpServiceConfigSslCcsCertInfo, - HttpServiceConfigMax, -}} -pub type PHTTP_SERVICE_CONFIG_ID = *mut HTTP_SERVICE_CONFIG_ID; -ENUM!{enum HTTP_SERVICE_CONFIG_QUERY_TYPE { - HttpServiceConfigQueryExact, - HttpServiceConfigQueryNext, - HttpServiceConfigQueryMax, -}} -pub type PHTTP_SERVICE_CONFIG_QUERY_TYPE = *mut HTTP_SERVICE_CONFIG_QUERY_TYPE; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_KEY { - pIpPort: PSOCKADDR, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_KEY = *mut HTTP_SERVICE_CONFIG_SSL_KEY; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_SNI_KEY { - IpPort: SOCKADDR_STORAGE, - Host: PWSTR, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_SNI_KEY = *mut HTTP_SERVICE_CONFIG_SSL_SNI_KEY; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_CCS_KEY { - LocalAddress: SOCKADDR_STORAGE, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_CCS_KEY = *mut HTTP_SERVICE_CONFIG_SSL_CCS_KEY; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_PARAM { - SslHashLength: ULONG, - pSslHash: PVOID, - AppId: GUID, - pSslCertStoreName: PWSTR, - DefaultCertCheckMode: DWORD, - DefaultRevocationFreshnessTime: DWORD, - DefaultRevocationUrlRetrievalTimeout: DWORD, - pDefaultSslCtlIdentifier: PWSTR, - pDefaultSslCtlStoreName: PWSTR, - DefaultFlags: DWORD, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_PARAM = *mut HTTP_SERVICE_CONFIG_SSL_PARAM; -pub const HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER: DWORD = 0x00000001; -pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT: DWORD = 0x00000002; -pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER: DWORD = 0x00000004; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_SET { - KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_SET = *mut HTTP_SERVICE_CONFIG_SSL_SET; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_SNI_SET { - KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_SNI_SET = *mut HTTP_SERVICE_CONFIG_SSL_SNI_SET; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_CCS_SET { - KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_CCS_SET = *mut HTTP_SERVICE_CONFIG_SSL_CCS_SET; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_QUERY { - QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, - KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY, - dwToken: DWORD, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_QUERY = *mut HTTP_SERVICE_CONFIG_SSL_QUERY; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_SNI_QUERY { - QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, - KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, - dwToken: DWORD, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_SNI_QUERY = *mut HTTP_SERVICE_CONFIG_SSL_SNI_QUERY; -STRUCT!{struct HTTP_SERVICE_CONFIG_SSL_CCS_QUERY { - QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, - KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, - dwToken: DWORD, -}} -pub type PHTTP_SERVICE_CONFIG_SSL_CCS_QUERY = *mut HTTP_SERVICE_CONFIG_SSL_CCS_QUERY; -STRUCT!{struct HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM { - AddrLength: USHORT, - pAddress: PSOCKADDR, -}} -pub type PHTTP_SERVICE_CONFIG_IP_LISTEN_PARAM = *mut HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM; -STRUCT!{struct HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY { - AddrCount: ULONG, - AddrList: [SOCKADDR_STORAGE; ANYSIZE_ARRAY], -}} -pub type PHTTP_SERVICE_CONFIG_IP_LISTEN_QUERY = *mut HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY; -STRUCT!{struct HTTP_SERVICE_CONFIG_URLACL_KEY { - pUrlPrefix: PWSTR, -}} -pub type PHTTP_SERVICE_CONFIG_URLACL_KEY = *mut HTTP_SERVICE_CONFIG_URLACL_KEY; -STRUCT!{struct HTTP_SERVICE_CONFIG_URLACL_PARAM { - pStringSecurityDescriptor: PWSTR, -}} -pub type PHTTP_SERVICE_CONFIG_URLACL_PARAM = *mut HTTP_SERVICE_CONFIG_URLACL_PARAM; -STRUCT!{struct HTTP_SERVICE_CONFIG_URLACL_SET { - KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_URLACL_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_URLACL_SET = *mut HTTP_SERVICE_CONFIG_URLACL_SET; -STRUCT!{struct HTTP_SERVICE_CONFIG_URLACL_QUERY { - QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, - KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY, - dwToken: DWORD, -}} -pub type PHTTP_SERVICE_CONFIG_URLACL_QUERY = *mut HTTP_SERVICE_CONFIG_URLACL_QUERY; -ENUM!{enum HTTP_SERVICE_CONFIG_CACHE_KEY { - MaxCacheResponseSize = 0, - CacheRangeChunkSize, -}} -pub type PHTTP_SERVICE_CONFIG_CACHE_KEY = *mut HTTP_SERVICE_CONFIG_CACHE_KEY; -pub type HTTP_SERVICE_CONFIG_CACHE_PARAM = ULONG; -pub type PHTTP_SERVICE_CONFIG_CACHE_PARAM = *mut ULONG; -STRUCT!{struct HTTP_SERVICE_CONFIG_CACHE_SET { - KeyDesc: HTTP_SERVICE_CONFIG_CACHE_KEY, - ParamDesc: HTTP_SERVICE_CONFIG_CACHE_PARAM, -}} -pub type PHTTP_SERVICE_CONFIG_CACHE_SET = *mut HTTP_SERVICE_CONFIG_CACHE_SET; -pub const HTTP_NULL_ID: ULONGLONG = 0; -#[inline] -pub unsafe fn HTTP_IS_NULL_ID(pid: PHTTP_OPAQUE_ID) -> bool { - HTTP_NULL_ID == *pid -} -#[inline] -pub unsafe fn HTTP_SET_NULL_ID(pid: PHTTP_OPAQUE_ID) { - *pid = HTTP_NULL_ID -} -extern "system" { - pub fn HttpInitialize( - Version: HTTPAPI_VERSION, - Flags: ULONG, - pReserved: PVOID, - ) -> ULONG; - pub fn HttpTerminate( - Flags: ULONG, - pReserved: PVOID, - ) -> ULONG; - pub fn HttpCreateHttpHandle( - pReqQueueHandle: PHANDLE, - Reserved: ULONG, - ) -> ULONG; - pub fn HttpCreateRequestQueue( - Version: HTTPAPI_VERSION, - pName: PCWSTR, - pSecurityAttributes: PSECURITY_ATTRIBUTES, - Flags: ULONG, - pReqQueueHandle: PHANDLE, - ) -> ULONG; - pub fn HttpCloseRequestQueue( - ReqQueueHandle: HANDLE, - ) -> ULONG; - pub fn HttpSetRequestQueueProperty( - Handle: HANDLE, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - Reserved: ULONG, - pReserved: PVOID, - ) -> ULONG; - pub fn HttpQueryRequestQueueProperty( - Handle: HANDLE, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - Reserved: ULONG, - pReturnLength: PULONG, - pReserved: PVOID, - ) -> ULONG; - pub fn HttpShutdownRequestQueue( - ReqQueueHandle: HANDLE, - ) -> ULONG; - pub fn HttpReceiveClientCertificate( - ReqQueueHandle: HANDLE, - ConnectionId: HTTP_CONNECTION_ID, - Flags: ULONG, - pSslClientCertInfo: PHTTP_SSL_CLIENT_CERT_INFO, - SslClientCertInfoSize: ULONG, - pBytesReceived: PULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpCreateServerSession( - Version: HTTPAPI_VERSION, - pServerSessionId: PHTTP_SERVER_SESSION_ID, - Reserved: ULONG, - ) -> ULONG; - pub fn HttpCloseServerSession( - ServerSessionId: HTTP_SERVER_SESSION_ID, - ) -> ULONG; - pub fn HttpQueryServerSessionProperty( - ServerSessionId: HTTP_SERVER_SESSION_ID, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - pReturnLength: PULONG, - ) -> ULONG; - pub fn HttpSetServerSessionProperty( - ServerSessionId: HTTP_SERVER_SESSION_ID, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - ) -> ULONG; - pub fn HttpAddUrl( - ReqQueueHandle: HANDLE, - pFullyQualifiedUrl: PCWSTR, - pReserved: PVOID, - ) -> ULONG; - pub fn HttpRemoveUrl( - ReqQueueHandle: HANDLE, - pFullyQualifiedUrl: PCWSTR, - ) -> ULONG; - pub fn HttpCreateUrlGroup( - ServerSessionId: HTTP_SERVER_SESSION_ID, - pUrlGroupId: PHTTP_URL_GROUP_ID, - Reserved: ULONG, - ) -> ULONG; - pub fn HttpCloseUrlGroup( - UrlGroupId: HTTP_URL_GROUP_ID, - ) -> ULONG; - pub fn HttpAddUrlToUrlGroup( - UrlGroupId: HTTP_URL_GROUP_ID, - pFullyQualifiedUrl: PCWSTR, - UrlContext: HTTP_URL_CONTEXT, - Reserved: ULONG, - ) -> ULONG; - pub fn HttpRemoveUrlFromUrlGroup( - UrlGroupId: HTTP_URL_GROUP_ID, - pFullyQualifiedUrl: PCWSTR, - Flags: ULONG, - ) -> ULONG; - pub fn HttpSetUrlGroupProperty( - UrlGroupId: HTTP_URL_GROUP_ID, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - ) -> ULONG; - pub fn HttpQueryUrlGroupProperty( - UrlGroupId: HTTP_URL_GROUP_ID, - Property: HTTP_SERVER_PROPERTY, - pPropertyInformation: PVOID, - PropertyInformationLength: ULONG, - pReturnLength: PULONG, - ) -> ULONG; - pub fn HttpPrepareUrl( - Reserved: PVOID, - Flags: ULONG, - Url: PCWSTR, - PreparedUrl: *mut PWSTR, - ) -> ULONG; - pub fn HttpReceiveHttpRequest( - ReqQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - Flags: ULONG, - pRequestBuffer: PHTTP_REQUEST, - RequestBufferLength: ULONG, - pBytesReturned: PULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpReceiveRequestEntityBody( - ReqQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - Flags: ULONG, - pBuffer: PVOID, - EntityBufferLength: ULONG, - pBytesReturned: PULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpSendHttpResponse( - ReqQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - Flags: ULONG, - pHttpResponse: PHTTP_RESPONSE, - pCachePolicy: PHTTP_CACHE_POLICY, - pBytesSent: PULONG, - pReserved1: PVOID, - Reserved2: ULONG, - pOverlapped: LPOVERLAPPED, - pLogData: PHTTP_LOG_DATA, - ) -> ULONG; - pub fn HttpSendResponseEntityBody( - ReqQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - Flags: ULONG, - EntityChunkCount: USHORT, - pEntityChunks: PHTTP_DATA_CHUNK, - pBytesSent: PULONG, - pReserved1: PVOID, - Reserved2: ULONG, - pOverlapped: LPOVERLAPPED, - pLogData: PHTTP_LOG_DATA, - ) -> ULONG; - pub fn HttpWaitForDisconnect( - ReqQueueHandle: HANDLE, - ConnectionId: HTTP_CONNECTION_ID, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpWaitForDisconnectEx( - ReqQueueHandle: HANDLE, - ConnectionId: HTTP_CONNECTION_ID, - Reserved: ULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpCancelHttpRequest( - ReqQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpWaitForDemandStart( - ReqQueueHandle: HANDLE, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpFlushResponseCache( - ReqQueueHandle: HANDLE, - pUrlPrefix: PCWSTR, - Flags: ULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpAddFragmentToCache( - ReqQueueHandle: HANDLE, - pUrlPrefix: PCWSTR, - pDataChunk: PHTTP_DATA_CHUNK, - pCachePolicy: PHTTP_CACHE_POLICY, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpReadFragmentFromCache( - ReqQueueHandle: HANDLE, - pUrlPrefix: PCWSTR, - pByteRange: PHTTP_BYTE_RANGE, - pBuffer: PVOID, - BufferLength: ULONG, - pBytesRead: PULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpSetServiceConfiguration( - ServiceHandle: HANDLE, - ConfigId: HTTP_SERVICE_CONFIG_ID, - pConfigInformation: PVOID, - ConfigInformationLength: ULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpDeleteServiceConfiguration( - ServiceHandle: HANDLE, - ConfigId: HTTP_SERVICE_CONFIG_ID, - pConfigInformation: PVOID, - ConfigInformationLength: ULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpQueryServiceConfiguration( - ServiceHandle: HANDLE, - ConfigId: HTTP_SERVICE_CONFIG_ID, - pInput: PVOID, - InputLength: ULONG, - pOutput: PVOID, - OutputLength: ULONG, - pReturnLength: PULONG, - pOverlapped: LPOVERLAPPED, - ) -> ULONG; - pub fn HttpDeclarePush( - RequestQueueHandle: HANDLE, - RequestId: HTTP_REQUEST_ID, - Verb: HTTP_VERB, - Path: PCWSTR, - Query: PCSTR, - Headers: PHTTP_REQUEST_HEADERS, - ) -> ULONG; - pub fn HttpUpdateServiceConfiguration( - Handle: HANDLE, - ConfigId: HTTP_SERVICE_CONFIG_ID, - ConfigInfo: PVOID, - ConfigInfoLength: ULONG, - Overlapped: LPOVERLAPPED, - ) -> ULONG; -} |