1784 lines
63 KiB
Zig
1784 lines
63 KiB
Zig
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (96)
|
|
//--------------------------------------------------------------------------------
|
|
pub const HTTP_DEMAND_CBT = @as(u32, 4);
|
|
pub const HTTP_MAX_SERVER_QUEUE_LENGTH = @as(u32, 2147483647);
|
|
pub const HTTP_MIN_SERVER_QUEUE_LENGTH = @as(u32, 1);
|
|
pub const HTTP_AUTH_ENABLE_BASIC = @as(u32, 1);
|
|
pub const HTTP_AUTH_ENABLE_DIGEST = @as(u32, 2);
|
|
pub const HTTP_AUTH_ENABLE_NTLM = @as(u32, 4);
|
|
pub const HTTP_AUTH_ENABLE_NEGOTIATE = @as(u32, 8);
|
|
pub const HTTP_AUTH_ENABLE_KERBEROS = @as(u32, 16);
|
|
pub const HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING = @as(u32, 1);
|
|
pub const HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL = @as(u32, 2);
|
|
pub const HTTP_CHANNEL_BIND_PROXY = @as(u32, 1);
|
|
pub const HTTP_CHANNEL_BIND_PROXY_COHOSTING = @as(u32, 32);
|
|
pub const HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK = @as(u32, 2);
|
|
pub const HTTP_CHANNEL_BIND_DOTLESS_SERVICE = @as(u32, 4);
|
|
pub const HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN = @as(u32, 8);
|
|
pub const HTTP_CHANNEL_BIND_CLIENT_SERVICE = @as(u32, 16);
|
|
pub const HTTP_LOG_FIELD_DATE = @as(u32, 1);
|
|
pub const HTTP_LOG_FIELD_TIME = @as(u32, 2);
|
|
pub const HTTP_LOG_FIELD_CLIENT_IP = @as(u32, 4);
|
|
pub const HTTP_LOG_FIELD_USER_NAME = @as(u32, 8);
|
|
pub const HTTP_LOG_FIELD_SITE_NAME = @as(u32, 16);
|
|
pub const HTTP_LOG_FIELD_COMPUTER_NAME = @as(u32, 32);
|
|
pub const HTTP_LOG_FIELD_SERVER_IP = @as(u32, 64);
|
|
pub const HTTP_LOG_FIELD_METHOD = @as(u32, 128);
|
|
pub const HTTP_LOG_FIELD_URI_STEM = @as(u32, 256);
|
|
pub const HTTP_LOG_FIELD_URI_QUERY = @as(u32, 512);
|
|
pub const HTTP_LOG_FIELD_STATUS = @as(u32, 1024);
|
|
pub const HTTP_LOG_FIELD_WIN32_STATUS = @as(u32, 2048);
|
|
pub const HTTP_LOG_FIELD_BYTES_SENT = @as(u32, 4096);
|
|
pub const HTTP_LOG_FIELD_BYTES_RECV = @as(u32, 8192);
|
|
pub const HTTP_LOG_FIELD_TIME_TAKEN = @as(u32, 16384);
|
|
pub const HTTP_LOG_FIELD_SERVER_PORT = @as(u32, 32768);
|
|
pub const HTTP_LOG_FIELD_USER_AGENT = @as(u32, 65536);
|
|
pub const HTTP_LOG_FIELD_COOKIE = @as(u32, 131072);
|
|
pub const HTTP_LOG_FIELD_REFERER = @as(u32, 262144);
|
|
pub const HTTP_LOG_FIELD_VERSION = @as(u32, 524288);
|
|
pub const HTTP_LOG_FIELD_HOST = @as(u32, 1048576);
|
|
pub const HTTP_LOG_FIELD_SUB_STATUS = @as(u32, 2097152);
|
|
pub const HTTP_LOG_FIELD_STREAM_ID = @as(u32, 134217728);
|
|
pub const HTTP_LOG_FIELD_STREAM_ID_EX = @as(u32, 268435456);
|
|
pub const HTTP_LOG_FIELD_TRANSPORT_TYPE = @as(u32, 536870912);
|
|
pub const HTTP_LOG_FIELD_CLIENT_PORT = @as(u32, 4194304);
|
|
pub const HTTP_LOG_FIELD_URI = @as(u32, 8388608);
|
|
pub const HTTP_LOG_FIELD_SITE_ID = @as(u32, 16777216);
|
|
pub const HTTP_LOG_FIELD_REASON = @as(u32, 33554432);
|
|
pub const HTTP_LOG_FIELD_QUEUE_NAME = @as(u32, 67108864);
|
|
pub const HTTP_LOG_FIELD_CORRELATION_ID = @as(u32, 1073741824);
|
|
pub const HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER = @as(u32, 1);
|
|
pub const HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION = @as(u32, 2);
|
|
pub const HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY = @as(u32, 4);
|
|
pub const HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY = @as(u32, 8);
|
|
pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING = @as(u32, 1);
|
|
pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER = @as(u32, 2);
|
|
pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_DELEGATION = @as(u32, 8);
|
|
pub const HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER = @as(u32, 1);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_DISCONNECT = @as(u32, 1);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_MORE_DATA = @as(u32, 2);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA = @as(u32, 4);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING = @as(u32, 8);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES = @as(u32, 32);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_OPAQUE = @as(u32, 64);
|
|
pub const HTTP_SEND_RESPONSE_FLAG_GOAWAY = @as(u32, 256);
|
|
pub const HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE = @as(u32, 1);
|
|
pub const HTTP_URL_FLAG_REMOVE_ALL = @as(u32, 1);
|
|
pub const HTTP_RECEIVE_SECURE_CHANNEL_TOKEN = @as(u32, 1);
|
|
pub const HTTP_RECEIVE_FULL_CHAIN = @as(u32, 2);
|
|
pub const HTTP_REQUEST_SIZING_INFO_FLAG_TCP_FAST_OPEN = @as(u32, 1);
|
|
pub const HTTP_REQUEST_SIZING_INFO_FLAG_TLS_SESSION_RESUMPTION = @as(u32, 2);
|
|
pub const HTTP_REQUEST_SIZING_INFO_FLAG_TLS_FALSE_START = @as(u32, 4);
|
|
pub const HTTP_REQUEST_SIZING_INFO_FLAG_FIRST_REQUEST = @as(u32, 8);
|
|
pub const HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED = @as(u32, 1);
|
|
pub const HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS = @as(u32, 1);
|
|
pub const HTTP_REQUEST_FLAG_IP_ROUTED = @as(u32, 2);
|
|
pub const HTTP_REQUEST_FLAG_HTTP2 = @as(u32, 4);
|
|
pub const HTTP_REQUEST_FLAG_HTTP3 = @as(u32, 8);
|
|
pub const HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE = @as(u32, 1);
|
|
pub const HTTP_RESPONSE_FLAG_MORE_ENTITY_BODY_EXISTS = @as(u32, 2);
|
|
pub const HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER = @as(u32, 1);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER = @as(u32, 1);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT = @as(u32, 2);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER = @as(u32, 4);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_REJECT = @as(u32, 8);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2 = @as(u32, 16);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_QUIC = @as(u32, 32);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS13 = @as(u32, 64);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_OCSP_STAPLING = @as(u32, 128);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_TOKEN_BINDING = @as(u32, 256);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS = @as(u32, 512);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS = @as(u32, 1024);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET = @as(u32, 2048);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12 = @as(u32, 4096);
|
|
pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CLIENT_CORRELATION = @as(u32, 8192);
|
|
pub const HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH = @as(u32, 255);
|
|
pub const HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED = @as(u32, 1);
|
|
pub const HTTP_REQUEST_PROPERTY_SNI_FLAG_NO_SNI = @as(u32, 2);
|
|
// skipped 'HTTP_VERSION'
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (123)
|
|
//--------------------------------------------------------------------------------
|
|
pub const HTTP_RECEIVE_HTTP_REQUEST_FLAGS = enum(u32) {
|
|
COPY_BODY = 1,
|
|
FLUSH_BODY = 2,
|
|
};
|
|
pub const HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY = HTTP_RECEIVE_HTTP_REQUEST_FLAGS.COPY_BODY;
|
|
pub const HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY = HTTP_RECEIVE_HTTP_REQUEST_FLAGS.FLUSH_BODY;
|
|
|
|
pub const HTTP_INITIALIZE = enum(u32) {
|
|
CONFIG = 2,
|
|
SERVER = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
CONFIG: u1 = 0,
|
|
SERVER: u1 = 0,
|
|
}) HTTP_INITIALIZE {
|
|
return @as(HTTP_INITIALIZE, @enumFromInt(
|
|
(if (o.CONFIG == 1) @intFromEnum(HTTP_INITIALIZE.CONFIG) else 0)
|
|
| (if (o.SERVER == 1) @intFromEnum(HTTP_INITIALIZE.SERVER) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const HTTP_INITIALIZE_CONFIG = HTTP_INITIALIZE.CONFIG;
|
|
pub const HTTP_INITIALIZE_SERVER = HTTP_INITIALIZE.SERVER;
|
|
|
|
pub const HTTP_SERVER_PROPERTY = enum(i32) {
|
|
AuthenticationProperty = 0,
|
|
LoggingProperty = 1,
|
|
QosProperty = 2,
|
|
TimeoutsProperty = 3,
|
|
QueueLengthProperty = 4,
|
|
StateProperty = 5,
|
|
@"503VerbosityProperty" = 6,
|
|
BindingProperty = 7,
|
|
ExtendedAuthenticationProperty = 8,
|
|
ListenEndpointProperty = 9,
|
|
ChannelBindProperty = 10,
|
|
ProtectionLevelProperty = 11,
|
|
DelegationProperty = 16,
|
|
};
|
|
pub const HttpServerAuthenticationProperty = HTTP_SERVER_PROPERTY.AuthenticationProperty;
|
|
pub const HttpServerLoggingProperty = HTTP_SERVER_PROPERTY.LoggingProperty;
|
|
pub const HttpServerQosProperty = HTTP_SERVER_PROPERTY.QosProperty;
|
|
pub const HttpServerTimeoutsProperty = HTTP_SERVER_PROPERTY.TimeoutsProperty;
|
|
pub const HttpServerQueueLengthProperty = HTTP_SERVER_PROPERTY.QueueLengthProperty;
|
|
pub const HttpServerStateProperty = HTTP_SERVER_PROPERTY.StateProperty;
|
|
pub const HttpServer503VerbosityProperty = HTTP_SERVER_PROPERTY.@"503VerbosityProperty";
|
|
pub const HttpServerBindingProperty = HTTP_SERVER_PROPERTY.BindingProperty;
|
|
pub const HttpServerExtendedAuthenticationProperty = HTTP_SERVER_PROPERTY.ExtendedAuthenticationProperty;
|
|
pub const HttpServerListenEndpointProperty = HTTP_SERVER_PROPERTY.ListenEndpointProperty;
|
|
pub const HttpServerChannelBindProperty = HTTP_SERVER_PROPERTY.ChannelBindProperty;
|
|
pub const HttpServerProtectionLevelProperty = HTTP_SERVER_PROPERTY.ProtectionLevelProperty;
|
|
pub const HttpServerDelegationProperty = HTTP_SERVER_PROPERTY.DelegationProperty;
|
|
|
|
pub const HTTP_PROPERTY_FLAGS = extern struct {
|
|
_bitfield: u32,
|
|
};
|
|
|
|
pub const HTTP_ENABLED_STATE = enum(i32) {
|
|
Active = 0,
|
|
Inactive = 1,
|
|
};
|
|
pub const HttpEnabledStateActive = HTTP_ENABLED_STATE.Active;
|
|
pub const HttpEnabledStateInactive = HTTP_ENABLED_STATE.Inactive;
|
|
|
|
pub const HTTP_STATE_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
State: HTTP_ENABLED_STATE,
|
|
};
|
|
|
|
pub const HTTP_503_RESPONSE_VERBOSITY = enum(i32) {
|
|
Basic = 0,
|
|
Limited = 1,
|
|
Full = 2,
|
|
};
|
|
pub const Http503ResponseVerbosityBasic = HTTP_503_RESPONSE_VERBOSITY.Basic;
|
|
pub const Http503ResponseVerbosityLimited = HTTP_503_RESPONSE_VERBOSITY.Limited;
|
|
pub const Http503ResponseVerbosityFull = HTTP_503_RESPONSE_VERBOSITY.Full;
|
|
|
|
pub const HTTP_QOS_SETTING_TYPE = enum(i32) {
|
|
Bandwidth = 0,
|
|
ConnectionLimit = 1,
|
|
FlowRate = 2,
|
|
};
|
|
pub const HttpQosSettingTypeBandwidth = HTTP_QOS_SETTING_TYPE.Bandwidth;
|
|
pub const HttpQosSettingTypeConnectionLimit = HTTP_QOS_SETTING_TYPE.ConnectionLimit;
|
|
pub const HttpQosSettingTypeFlowRate = HTTP_QOS_SETTING_TYPE.FlowRate;
|
|
|
|
pub const HTTP_QOS_SETTING_INFO = extern struct {
|
|
QosType: HTTP_QOS_SETTING_TYPE,
|
|
QosSetting: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_CONNECTION_LIMIT_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
MaxConnections: u32,
|
|
};
|
|
|
|
pub const HTTP_BANDWIDTH_LIMIT_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
MaxBandwidth: u32,
|
|
};
|
|
|
|
pub const HTTP_FLOWRATE_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
MaxBandwidth: u32,
|
|
MaxPeakBandwidth: u32,
|
|
BurstSize: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_TIMEOUT_KEY = enum(i32) {
|
|
IdleConnectionTimeout = 0,
|
|
HeaderWaitTimeout = 1,
|
|
};
|
|
pub const IdleConnectionTimeout = HTTP_SERVICE_CONFIG_TIMEOUT_KEY.IdleConnectionTimeout;
|
|
pub const HeaderWaitTimeout = HTTP_SERVICE_CONFIG_TIMEOUT_KEY.HeaderWaitTimeout;
|
|
|
|
pub const HTTP_SERVICE_CONFIG_TIMEOUT_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_TIMEOUT_KEY,
|
|
ParamDesc: u16,
|
|
};
|
|
|
|
pub const HTTP_TIMEOUT_LIMIT_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
EntityBody: u16,
|
|
DrainEntityBody: u16,
|
|
RequestQueue: u16,
|
|
IdleConnection: u16,
|
|
HeaderWait: u16,
|
|
MinSendRate: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SETTING_KEY = enum(i32) {
|
|
None = 0,
|
|
TlsThrottle = 1,
|
|
};
|
|
pub const HttpNone = HTTP_SERVICE_CONFIG_SETTING_KEY.None;
|
|
pub const HttpTlsThrottle = HTTP_SERVICE_CONFIG_SETTING_KEY.TlsThrottle;
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SETTING_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SETTING_KEY,
|
|
ParamDesc: u32,
|
|
};
|
|
|
|
pub const HTTP_LISTEN_ENDPOINT_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
EnableSharing: BOOLEAN,
|
|
};
|
|
|
|
pub const HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS = extern struct {
|
|
DomainNameLength: u16,
|
|
DomainName: ?PWSTR,
|
|
RealmLength: u16,
|
|
Realm: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS = extern struct {
|
|
RealmLength: u16,
|
|
Realm: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_SERVER_AUTHENTICATION_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
AuthSchemes: u32,
|
|
ReceiveMutualAuth: BOOLEAN,
|
|
ReceiveContextHandle: BOOLEAN,
|
|
DisableNTLMCredentialCaching: BOOLEAN,
|
|
ExFlags: u8,
|
|
DigestParams: HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS,
|
|
BasicParams: HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_BINDING_TYPE = enum(i32) {
|
|
None = 0,
|
|
W = 1,
|
|
A = 2,
|
|
};
|
|
pub const HttpServiceBindingTypeNone = HTTP_SERVICE_BINDING_TYPE.None;
|
|
pub const HttpServiceBindingTypeW = HTTP_SERVICE_BINDING_TYPE.W;
|
|
pub const HttpServiceBindingTypeA = HTTP_SERVICE_BINDING_TYPE.A;
|
|
|
|
pub const HTTP_SERVICE_BINDING_BASE = extern struct {
|
|
Type: HTTP_SERVICE_BINDING_TYPE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_BINDING_A = extern struct {
|
|
Base: HTTP_SERVICE_BINDING_BASE,
|
|
Buffer: ?[*]u8,
|
|
BufferSize: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_BINDING_W = extern struct {
|
|
Base: HTTP_SERVICE_BINDING_BASE,
|
|
Buffer: ?[*]u16,
|
|
BufferSize: u32,
|
|
};
|
|
|
|
pub const HTTP_AUTHENTICATION_HARDENING_LEVELS = enum(i32) {
|
|
Legacy = 0,
|
|
Medium = 1,
|
|
Strict = 2,
|
|
};
|
|
pub const HttpAuthenticationHardeningLegacy = HTTP_AUTHENTICATION_HARDENING_LEVELS.Legacy;
|
|
pub const HttpAuthenticationHardeningMedium = HTTP_AUTHENTICATION_HARDENING_LEVELS.Medium;
|
|
pub const HttpAuthenticationHardeningStrict = HTTP_AUTHENTICATION_HARDENING_LEVELS.Strict;
|
|
|
|
pub const HTTP_CHANNEL_BIND_INFO = extern struct {
|
|
Hardening: HTTP_AUTHENTICATION_HARDENING_LEVELS,
|
|
Flags: u32,
|
|
ServiceNames: ?*?*HTTP_SERVICE_BINDING_BASE,
|
|
NumberOfServiceNames: u32,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_CHANNEL_BIND_STATUS = extern struct {
|
|
ServiceName: ?*HTTP_SERVICE_BINDING_BASE,
|
|
ChannelToken: ?*u8,
|
|
ChannelTokenSize: u32,
|
|
Flags: u32,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_TOKEN_BINDING_INFO = extern struct {
|
|
TokenBinding: ?*u8,
|
|
TokenBindingSize: u32,
|
|
EKM: ?*u8,
|
|
EKMSize: u32,
|
|
KeyType: u8,
|
|
};
|
|
|
|
pub const HTTP_LOGGING_TYPE = enum(i32) {
|
|
W3C = 0,
|
|
IIS = 1,
|
|
NCSA = 2,
|
|
Raw = 3,
|
|
};
|
|
pub const HttpLoggingTypeW3C = HTTP_LOGGING_TYPE.W3C;
|
|
pub const HttpLoggingTypeIIS = HTTP_LOGGING_TYPE.IIS;
|
|
pub const HttpLoggingTypeNCSA = HTTP_LOGGING_TYPE.NCSA;
|
|
pub const HttpLoggingTypeRaw = HTTP_LOGGING_TYPE.Raw;
|
|
|
|
pub const HTTP_LOGGING_ROLLOVER_TYPE = enum(i32) {
|
|
Size = 0,
|
|
Daily = 1,
|
|
Weekly = 2,
|
|
Monthly = 3,
|
|
Hourly = 4,
|
|
};
|
|
pub const HttpLoggingRolloverSize = HTTP_LOGGING_ROLLOVER_TYPE.Size;
|
|
pub const HttpLoggingRolloverDaily = HTTP_LOGGING_ROLLOVER_TYPE.Daily;
|
|
pub const HttpLoggingRolloverWeekly = HTTP_LOGGING_ROLLOVER_TYPE.Weekly;
|
|
pub const HttpLoggingRolloverMonthly = HTTP_LOGGING_ROLLOVER_TYPE.Monthly;
|
|
pub const HttpLoggingRolloverHourly = HTTP_LOGGING_ROLLOVER_TYPE.Hourly;
|
|
|
|
pub const HTTP_LOGGING_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
LoggingFlags: u32,
|
|
SoftwareName: ?[*:0]const u16,
|
|
SoftwareNameLength: u16,
|
|
DirectoryNameLength: u16,
|
|
DirectoryName: ?[*:0]const u16,
|
|
Format: HTTP_LOGGING_TYPE,
|
|
Fields: u32,
|
|
pExtFields: ?*anyopaque,
|
|
NumOfExtFields: u16,
|
|
MaxRecordSize: u16,
|
|
RolloverType: HTTP_LOGGING_ROLLOVER_TYPE,
|
|
RolloverSize: u32,
|
|
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
|
|
};
|
|
|
|
pub const HTTP_BINDING_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
RequestQueueHandle: ?HANDLE,
|
|
};
|
|
|
|
pub const HTTP_PROTECTION_LEVEL_TYPE = enum(i32) {
|
|
Unrestricted = 0,
|
|
EdgeRestricted = 1,
|
|
Restricted = 2,
|
|
};
|
|
pub const HttpProtectionLevelUnrestricted = HTTP_PROTECTION_LEVEL_TYPE.Unrestricted;
|
|
pub const HttpProtectionLevelEdgeRestricted = HTTP_PROTECTION_LEVEL_TYPE.EdgeRestricted;
|
|
pub const HttpProtectionLevelRestricted = HTTP_PROTECTION_LEVEL_TYPE.Restricted;
|
|
|
|
pub const HTTP_PROTECTION_LEVEL_INFO = extern struct {
|
|
Flags: HTTP_PROPERTY_FLAGS,
|
|
Level: HTTP_PROTECTION_LEVEL_TYPE,
|
|
};
|
|
|
|
pub const HTTP_BYTE_RANGE = extern struct {
|
|
StartingOffset: ULARGE_INTEGER,
|
|
Length: ULARGE_INTEGER,
|
|
};
|
|
|
|
pub const HTTP_VERSION = extern struct {
|
|
MajorVersion: u16,
|
|
MinorVersion: u16,
|
|
};
|
|
|
|
pub const HTTP_SCHEME = enum(i32) {
|
|
Http = 0,
|
|
Https = 1,
|
|
Maximum = 2,
|
|
};
|
|
pub const HttpSchemeHttp = HTTP_SCHEME.Http;
|
|
pub const HttpSchemeHttps = HTTP_SCHEME.Https;
|
|
pub const HttpSchemeMaximum = HTTP_SCHEME.Maximum;
|
|
|
|
pub const HTTP_VERB = enum(i32) {
|
|
Unparsed = 0,
|
|
Unknown = 1,
|
|
Invalid = 2,
|
|
OPTIONS = 3,
|
|
GET = 4,
|
|
HEAD = 5,
|
|
POST = 6,
|
|
PUT = 7,
|
|
DELETE = 8,
|
|
TRACE = 9,
|
|
CONNECT = 10,
|
|
TRACK = 11,
|
|
MOVE = 12,
|
|
COPY = 13,
|
|
PROPFIND = 14,
|
|
PROPPATCH = 15,
|
|
MKCOL = 16,
|
|
LOCK = 17,
|
|
UNLOCK = 18,
|
|
SEARCH = 19,
|
|
Maximum = 20,
|
|
};
|
|
pub const HttpVerbUnparsed = HTTP_VERB.Unparsed;
|
|
pub const HttpVerbUnknown = HTTP_VERB.Unknown;
|
|
pub const HttpVerbInvalid = HTTP_VERB.Invalid;
|
|
pub const HttpVerbOPTIONS = HTTP_VERB.OPTIONS;
|
|
pub const HttpVerbGET = HTTP_VERB.GET;
|
|
pub const HttpVerbHEAD = HTTP_VERB.HEAD;
|
|
pub const HttpVerbPOST = HTTP_VERB.POST;
|
|
pub const HttpVerbPUT = HTTP_VERB.PUT;
|
|
pub const HttpVerbDELETE = HTTP_VERB.DELETE;
|
|
pub const HttpVerbTRACE = HTTP_VERB.TRACE;
|
|
pub const HttpVerbCONNECT = HTTP_VERB.CONNECT;
|
|
pub const HttpVerbTRACK = HTTP_VERB.TRACK;
|
|
pub const HttpVerbMOVE = HTTP_VERB.MOVE;
|
|
pub const HttpVerbCOPY = HTTP_VERB.COPY;
|
|
pub const HttpVerbPROPFIND = HTTP_VERB.PROPFIND;
|
|
pub const HttpVerbPROPPATCH = HTTP_VERB.PROPPATCH;
|
|
pub const HttpVerbMKCOL = HTTP_VERB.MKCOL;
|
|
pub const HttpVerbLOCK = HTTP_VERB.LOCK;
|
|
pub const HttpVerbUNLOCK = HTTP_VERB.UNLOCK;
|
|
pub const HttpVerbSEARCH = HTTP_VERB.SEARCH;
|
|
pub const HttpVerbMaximum = HTTP_VERB.Maximum;
|
|
|
|
pub const HTTP_HEADER_ID = enum(i32) {
|
|
CacheControl = 0,
|
|
Connection = 1,
|
|
Date = 2,
|
|
KeepAlive = 3,
|
|
Pragma = 4,
|
|
Trailer = 5,
|
|
TransferEncoding = 6,
|
|
Upgrade = 7,
|
|
Via = 8,
|
|
Warning = 9,
|
|
Allow = 10,
|
|
ContentLength = 11,
|
|
ContentType = 12,
|
|
ContentEncoding = 13,
|
|
ContentLanguage = 14,
|
|
ContentLocation = 15,
|
|
ContentMd5 = 16,
|
|
ContentRange = 17,
|
|
Expires = 18,
|
|
LastModified = 19,
|
|
Accept = 20,
|
|
AcceptCharset = 21,
|
|
AcceptEncoding = 22,
|
|
AcceptLanguage = 23,
|
|
Authorization = 24,
|
|
Cookie = 25,
|
|
Expect = 26,
|
|
From = 27,
|
|
Host = 28,
|
|
IfMatch = 29,
|
|
IfModifiedSince = 30,
|
|
IfNoneMatch = 31,
|
|
IfRange = 32,
|
|
IfUnmodifiedSince = 33,
|
|
MaxForwards = 34,
|
|
ProxyAuthorization = 35,
|
|
Referer = 36,
|
|
Range = 37,
|
|
Te = 38,
|
|
Translate = 39,
|
|
UserAgent = 40,
|
|
RequestMaximum = 41,
|
|
// AcceptRanges = 20, this enum value conflicts with Accept
|
|
// Age = 21, this enum value conflicts with AcceptCharset
|
|
// Etag = 22, this enum value conflicts with AcceptEncoding
|
|
// Location = 23, this enum value conflicts with AcceptLanguage
|
|
// ProxyAuthenticate = 24, this enum value conflicts with Authorization
|
|
// RetryAfter = 25, this enum value conflicts with Cookie
|
|
// Server = 26, this enum value conflicts with Expect
|
|
// SetCookie = 27, this enum value conflicts with From
|
|
// Vary = 28, this enum value conflicts with Host
|
|
// WwwAuthenticate = 29, this enum value conflicts with IfMatch
|
|
// ResponseMaximum = 30, this enum value conflicts with IfModifiedSince
|
|
// Maximum = 41, this enum value conflicts with RequestMaximum
|
|
};
|
|
pub const HttpHeaderCacheControl = HTTP_HEADER_ID.CacheControl;
|
|
pub const HttpHeaderConnection = HTTP_HEADER_ID.Connection;
|
|
pub const HttpHeaderDate = HTTP_HEADER_ID.Date;
|
|
pub const HttpHeaderKeepAlive = HTTP_HEADER_ID.KeepAlive;
|
|
pub const HttpHeaderPragma = HTTP_HEADER_ID.Pragma;
|
|
pub const HttpHeaderTrailer = HTTP_HEADER_ID.Trailer;
|
|
pub const HttpHeaderTransferEncoding = HTTP_HEADER_ID.TransferEncoding;
|
|
pub const HttpHeaderUpgrade = HTTP_HEADER_ID.Upgrade;
|
|
pub const HttpHeaderVia = HTTP_HEADER_ID.Via;
|
|
pub const HttpHeaderWarning = HTTP_HEADER_ID.Warning;
|
|
pub const HttpHeaderAllow = HTTP_HEADER_ID.Allow;
|
|
pub const HttpHeaderContentLength = HTTP_HEADER_ID.ContentLength;
|
|
pub const HttpHeaderContentType = HTTP_HEADER_ID.ContentType;
|
|
pub const HttpHeaderContentEncoding = HTTP_HEADER_ID.ContentEncoding;
|
|
pub const HttpHeaderContentLanguage = HTTP_HEADER_ID.ContentLanguage;
|
|
pub const HttpHeaderContentLocation = HTTP_HEADER_ID.ContentLocation;
|
|
pub const HttpHeaderContentMd5 = HTTP_HEADER_ID.ContentMd5;
|
|
pub const HttpHeaderContentRange = HTTP_HEADER_ID.ContentRange;
|
|
pub const HttpHeaderExpires = HTTP_HEADER_ID.Expires;
|
|
pub const HttpHeaderLastModified = HTTP_HEADER_ID.LastModified;
|
|
pub const HttpHeaderAccept = HTTP_HEADER_ID.Accept;
|
|
pub const HttpHeaderAcceptCharset = HTTP_HEADER_ID.AcceptCharset;
|
|
pub const HttpHeaderAcceptEncoding = HTTP_HEADER_ID.AcceptEncoding;
|
|
pub const HttpHeaderAcceptLanguage = HTTP_HEADER_ID.AcceptLanguage;
|
|
pub const HttpHeaderAuthorization = HTTP_HEADER_ID.Authorization;
|
|
pub const HttpHeaderCookie = HTTP_HEADER_ID.Cookie;
|
|
pub const HttpHeaderExpect = HTTP_HEADER_ID.Expect;
|
|
pub const HttpHeaderFrom = HTTP_HEADER_ID.From;
|
|
pub const HttpHeaderHost = HTTP_HEADER_ID.Host;
|
|
pub const HttpHeaderIfMatch = HTTP_HEADER_ID.IfMatch;
|
|
pub const HttpHeaderIfModifiedSince = HTTP_HEADER_ID.IfModifiedSince;
|
|
pub const HttpHeaderIfNoneMatch = HTTP_HEADER_ID.IfNoneMatch;
|
|
pub const HttpHeaderIfRange = HTTP_HEADER_ID.IfRange;
|
|
pub const HttpHeaderIfUnmodifiedSince = HTTP_HEADER_ID.IfUnmodifiedSince;
|
|
pub const HttpHeaderMaxForwards = HTTP_HEADER_ID.MaxForwards;
|
|
pub const HttpHeaderProxyAuthorization = HTTP_HEADER_ID.ProxyAuthorization;
|
|
pub const HttpHeaderReferer = HTTP_HEADER_ID.Referer;
|
|
pub const HttpHeaderRange = HTTP_HEADER_ID.Range;
|
|
pub const HttpHeaderTe = HTTP_HEADER_ID.Te;
|
|
pub const HttpHeaderTranslate = HTTP_HEADER_ID.Translate;
|
|
pub const HttpHeaderUserAgent = HTTP_HEADER_ID.UserAgent;
|
|
pub const HttpHeaderRequestMaximum = HTTP_HEADER_ID.RequestMaximum;
|
|
pub const HttpHeaderAcceptRanges = HTTP_HEADER_ID.Accept;
|
|
pub const HttpHeaderAge = HTTP_HEADER_ID.AcceptCharset;
|
|
pub const HttpHeaderEtag = HTTP_HEADER_ID.AcceptEncoding;
|
|
pub const HttpHeaderLocation = HTTP_HEADER_ID.AcceptLanguage;
|
|
pub const HttpHeaderProxyAuthenticate = HTTP_HEADER_ID.Authorization;
|
|
pub const HttpHeaderRetryAfter = HTTP_HEADER_ID.Cookie;
|
|
pub const HttpHeaderServer = HTTP_HEADER_ID.Expect;
|
|
pub const HttpHeaderSetCookie = HTTP_HEADER_ID.From;
|
|
pub const HttpHeaderVary = HTTP_HEADER_ID.Host;
|
|
pub const HttpHeaderWwwAuthenticate = HTTP_HEADER_ID.IfMatch;
|
|
pub const HttpHeaderResponseMaximum = HTTP_HEADER_ID.IfModifiedSince;
|
|
pub const HttpHeaderMaximum = HTTP_HEADER_ID.RequestMaximum;
|
|
|
|
pub const HTTP_KNOWN_HEADER = extern struct {
|
|
RawValueLength: u16,
|
|
pRawValue: ?[*:0]const u8,
|
|
};
|
|
|
|
pub const HTTP_UNKNOWN_HEADER = extern struct {
|
|
NameLength: u16,
|
|
RawValueLength: u16,
|
|
pName: ?[*:0]const u8,
|
|
pRawValue: ?[*:0]const u8,
|
|
};
|
|
|
|
pub const HTTP_LOG_DATA_TYPE = enum(i32) {
|
|
s = 0,
|
|
};
|
|
pub const HttpLogDataTypeFields = HTTP_LOG_DATA_TYPE.s;
|
|
|
|
pub const HTTP_LOG_DATA = extern struct {
|
|
Type: HTTP_LOG_DATA_TYPE,
|
|
};
|
|
|
|
pub const HTTP_LOG_FIELDS_DATA = extern struct {
|
|
Base: HTTP_LOG_DATA,
|
|
UserNameLength: u16,
|
|
UriStemLength: u16,
|
|
ClientIpLength: u16,
|
|
ServerNameLength: u16,
|
|
ServiceNameLength: u16,
|
|
ServerIpLength: u16,
|
|
MethodLength: u16,
|
|
UriQueryLength: u16,
|
|
HostLength: u16,
|
|
UserAgentLength: u16,
|
|
CookieLength: u16,
|
|
ReferrerLength: u16,
|
|
UserName: ?[*]u16,
|
|
UriStem: ?[*]u16,
|
|
ClientIp: ?[*]u8,
|
|
ServerName: ?[*]u8,
|
|
ServiceName: ?[*]u8,
|
|
ServerIp: ?[*]u8,
|
|
Method: ?[*]u8,
|
|
UriQuery: ?[*]u8,
|
|
Host: ?[*]u8,
|
|
UserAgent: ?[*]u8,
|
|
Cookie: ?[*]u8,
|
|
Referrer: ?[*]u8,
|
|
ServerPort: u16,
|
|
ProtocolStatus: u16,
|
|
Win32Status: u32,
|
|
MethodNum: HTTP_VERB,
|
|
SubStatus: u16,
|
|
};
|
|
|
|
pub const HTTP_DATA_CHUNK_TYPE = enum(i32) {
|
|
FromMemory = 0,
|
|
FromFileHandle = 1,
|
|
FromFragmentCache = 2,
|
|
FromFragmentCacheEx = 3,
|
|
Trailers = 4,
|
|
Maximum = 5,
|
|
};
|
|
pub const HttpDataChunkFromMemory = HTTP_DATA_CHUNK_TYPE.FromMemory;
|
|
pub const HttpDataChunkFromFileHandle = HTTP_DATA_CHUNK_TYPE.FromFileHandle;
|
|
pub const HttpDataChunkFromFragmentCache = HTTP_DATA_CHUNK_TYPE.FromFragmentCache;
|
|
pub const HttpDataChunkFromFragmentCacheEx = HTTP_DATA_CHUNK_TYPE.FromFragmentCacheEx;
|
|
pub const HttpDataChunkTrailers = HTTP_DATA_CHUNK_TYPE.Trailers;
|
|
pub const HttpDataChunkMaximum = HTTP_DATA_CHUNK_TYPE.Maximum;
|
|
|
|
pub const HTTP_DATA_CHUNK = extern struct {
|
|
DataChunkType: HTTP_DATA_CHUNK_TYPE,
|
|
Anonymous: extern union {
|
|
FromMemory: extern struct {
|
|
pBuffer: ?*anyopaque,
|
|
BufferLength: u32,
|
|
},
|
|
FromFileHandle: extern struct {
|
|
ByteRange: HTTP_BYTE_RANGE,
|
|
FileHandle: ?HANDLE,
|
|
},
|
|
FromFragmentCache: extern struct {
|
|
FragmentNameLength: u16,
|
|
pFragmentName: ?[*:0]const u16,
|
|
},
|
|
FromFragmentCacheEx: extern struct {
|
|
ByteRange: HTTP_BYTE_RANGE,
|
|
pFragmentName: ?[*:0]const u16,
|
|
},
|
|
Trailers: extern struct {
|
|
TrailerCount: u16,
|
|
pTrailers: ?*HTTP_UNKNOWN_HEADER,
|
|
},
|
|
},
|
|
};
|
|
|
|
pub const HTTP_REQUEST_HEADERS = extern struct {
|
|
UnknownHeaderCount: u16,
|
|
pUnknownHeaders: ?*HTTP_UNKNOWN_HEADER,
|
|
TrailerCount: u16,
|
|
pTrailers: ?*HTTP_UNKNOWN_HEADER,
|
|
KnownHeaders: [41]HTTP_KNOWN_HEADER,
|
|
};
|
|
|
|
pub const HTTP_RESPONSE_HEADERS = extern struct {
|
|
UnknownHeaderCount: u16,
|
|
pUnknownHeaders: ?*HTTP_UNKNOWN_HEADER,
|
|
TrailerCount: u16,
|
|
pTrailers: ?*HTTP_UNKNOWN_HEADER,
|
|
KnownHeaders: [30]HTTP_KNOWN_HEADER,
|
|
};
|
|
|
|
pub const HTTP_DELEGATE_REQUEST_PROPERTY_ID = enum(i32) {
|
|
ReservedProperty = 0,
|
|
DelegateUrlProperty = 1,
|
|
};
|
|
pub const DelegateRequestReservedProperty = HTTP_DELEGATE_REQUEST_PROPERTY_ID.ReservedProperty;
|
|
pub const DelegateRequestDelegateUrlProperty = HTTP_DELEGATE_REQUEST_PROPERTY_ID.DelegateUrlProperty;
|
|
|
|
pub const HTTP_DELEGATE_REQUEST_PROPERTY_INFO = extern struct {
|
|
PropertyId: HTTP_DELEGATE_REQUEST_PROPERTY_ID,
|
|
PropertyInfoLength: u32,
|
|
PropertyInfo: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID = enum(i32) {
|
|
ExternalIdProperty = 1,
|
|
Max = 2,
|
|
};
|
|
pub const CreateRequestQueueExternalIdProperty = HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.ExternalIdProperty;
|
|
pub const CreateRequestQueueMax = HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID.Max;
|
|
|
|
pub const HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO = extern struct {
|
|
PropertyId: HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID,
|
|
PropertyInfoLength: u32,
|
|
PropertyInfo: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_TRANSPORT_ADDRESS = extern struct {
|
|
pRemoteAddress: ?*SOCKADDR,
|
|
pLocalAddress: ?*SOCKADDR,
|
|
};
|
|
|
|
pub const HTTP_COOKED_URL = extern struct {
|
|
FullUrlLength: u16,
|
|
HostLength: u16,
|
|
AbsPathLength: u16,
|
|
QueryStringLength: u16,
|
|
pFullUrl: ?[*:0]const u16,
|
|
pHost: ?[*:0]const u16,
|
|
pAbsPath: ?[*:0]const u16,
|
|
pQueryString: ?[*:0]const u16,
|
|
};
|
|
|
|
pub const HTTP_AUTH_STATUS = enum(i32) {
|
|
Success = 0,
|
|
NotAuthenticated = 1,
|
|
Failure = 2,
|
|
};
|
|
pub const HttpAuthStatusSuccess = HTTP_AUTH_STATUS.Success;
|
|
pub const HttpAuthStatusNotAuthenticated = HTTP_AUTH_STATUS.NotAuthenticated;
|
|
pub const HttpAuthStatusFailure = HTTP_AUTH_STATUS.Failure;
|
|
|
|
pub const HTTP_REQUEST_AUTH_TYPE = enum(i32) {
|
|
None = 0,
|
|
Basic = 1,
|
|
Digest = 2,
|
|
NTLM = 3,
|
|
Negotiate = 4,
|
|
Kerberos = 5,
|
|
};
|
|
pub const HttpRequestAuthTypeNone = HTTP_REQUEST_AUTH_TYPE.None;
|
|
pub const HttpRequestAuthTypeBasic = HTTP_REQUEST_AUTH_TYPE.Basic;
|
|
pub const HttpRequestAuthTypeDigest = HTTP_REQUEST_AUTH_TYPE.Digest;
|
|
pub const HttpRequestAuthTypeNTLM = HTTP_REQUEST_AUTH_TYPE.NTLM;
|
|
pub const HttpRequestAuthTypeNegotiate = HTTP_REQUEST_AUTH_TYPE.Negotiate;
|
|
pub const HttpRequestAuthTypeKerberos = HTTP_REQUEST_AUTH_TYPE.Kerberos;
|
|
|
|
pub const HTTP_SSL_CLIENT_CERT_INFO = extern struct {
|
|
CertFlags: u32,
|
|
CertEncodedSize: u32,
|
|
pCertEncoded: ?*u8,
|
|
Token: ?HANDLE,
|
|
CertDeniedByMapper: BOOLEAN,
|
|
};
|
|
|
|
pub const HTTP_SSL_INFO = extern struct {
|
|
ServerCertKeySize: u16,
|
|
ConnectionKeySize: u16,
|
|
ServerCertIssuerSize: u32,
|
|
ServerCertSubjectSize: u32,
|
|
pServerCertIssuer: ?[*:0]const u8,
|
|
pServerCertSubject: ?[*:0]const u8,
|
|
pClientCertInfo: ?*HTTP_SSL_CLIENT_CERT_INFO,
|
|
SslClientCertNegotiated: u32,
|
|
};
|
|
|
|
pub const HTTP_SSL_PROTOCOL_INFO = extern struct {
|
|
Protocol: u32,
|
|
CipherType: u32,
|
|
CipherStrength: u32,
|
|
HashType: u32,
|
|
HashStrength: u32,
|
|
KeyExchangeType: u32,
|
|
KeyExchangeStrength: u32,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_SIZING_TYPE = enum(i32) {
|
|
TlsHandshakeLeg1ClientData = 0,
|
|
TlsHandshakeLeg1ServerData = 1,
|
|
TlsHandshakeLeg2ClientData = 2,
|
|
TlsHandshakeLeg2ServerData = 3,
|
|
Headers = 4,
|
|
Max = 5,
|
|
};
|
|
pub const HttpRequestSizingTypeTlsHandshakeLeg1ClientData = HTTP_REQUEST_SIZING_TYPE.TlsHandshakeLeg1ClientData;
|
|
pub const HttpRequestSizingTypeTlsHandshakeLeg1ServerData = HTTP_REQUEST_SIZING_TYPE.TlsHandshakeLeg1ServerData;
|
|
pub const HttpRequestSizingTypeTlsHandshakeLeg2ClientData = HTTP_REQUEST_SIZING_TYPE.TlsHandshakeLeg2ClientData;
|
|
pub const HttpRequestSizingTypeTlsHandshakeLeg2ServerData = HTTP_REQUEST_SIZING_TYPE.TlsHandshakeLeg2ServerData;
|
|
pub const HttpRequestSizingTypeHeaders = HTTP_REQUEST_SIZING_TYPE.Headers;
|
|
pub const HttpRequestSizingTypeMax = HTTP_REQUEST_SIZING_TYPE.Max;
|
|
|
|
pub const HTTP_REQUEST_SIZING_INFO = extern struct {
|
|
Flags: u64,
|
|
RequestIndex: u32,
|
|
RequestSizingCount: u32,
|
|
RequestSizing: [5]u64,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_TIMING_TYPE = enum(i32) {
|
|
ConnectionStart = 0,
|
|
DataStart = 1,
|
|
TlsCertificateLoadStart = 2,
|
|
TlsCertificateLoadEnd = 3,
|
|
TlsHandshakeLeg1Start = 4,
|
|
TlsHandshakeLeg1End = 5,
|
|
TlsHandshakeLeg2Start = 6,
|
|
TlsHandshakeLeg2End = 7,
|
|
TlsAttributesQueryStart = 8,
|
|
TlsAttributesQueryEnd = 9,
|
|
TlsClientCertQueryStart = 10,
|
|
TlsClientCertQueryEnd = 11,
|
|
Http2StreamStart = 12,
|
|
Http2HeaderDecodeStart = 13,
|
|
Http2HeaderDecodeEnd = 14,
|
|
RequestHeaderParseStart = 15,
|
|
RequestHeaderParseEnd = 16,
|
|
RequestRoutingStart = 17,
|
|
RequestRoutingEnd = 18,
|
|
RequestQueuedForInspection = 19,
|
|
RequestDeliveredForInspection = 20,
|
|
RequestReturnedAfterInspection = 21,
|
|
RequestQueuedForDelegation = 22,
|
|
RequestDeliveredForDelegation = 23,
|
|
RequestReturnedAfterDelegation = 24,
|
|
RequestQueuedForIO = 25,
|
|
RequestDeliveredForIO = 26,
|
|
Http3StreamStart = 27,
|
|
Http3HeaderDecodeStart = 28,
|
|
Http3HeaderDecodeEnd = 29,
|
|
Max = 30,
|
|
};
|
|
pub const HttpRequestTimingTypeConnectionStart = HTTP_REQUEST_TIMING_TYPE.ConnectionStart;
|
|
pub const HttpRequestTimingTypeDataStart = HTTP_REQUEST_TIMING_TYPE.DataStart;
|
|
pub const HttpRequestTimingTypeTlsCertificateLoadStart = HTTP_REQUEST_TIMING_TYPE.TlsCertificateLoadStart;
|
|
pub const HttpRequestTimingTypeTlsCertificateLoadEnd = HTTP_REQUEST_TIMING_TYPE.TlsCertificateLoadEnd;
|
|
pub const HttpRequestTimingTypeTlsHandshakeLeg1Start = HTTP_REQUEST_TIMING_TYPE.TlsHandshakeLeg1Start;
|
|
pub const HttpRequestTimingTypeTlsHandshakeLeg1End = HTTP_REQUEST_TIMING_TYPE.TlsHandshakeLeg1End;
|
|
pub const HttpRequestTimingTypeTlsHandshakeLeg2Start = HTTP_REQUEST_TIMING_TYPE.TlsHandshakeLeg2Start;
|
|
pub const HttpRequestTimingTypeTlsHandshakeLeg2End = HTTP_REQUEST_TIMING_TYPE.TlsHandshakeLeg2End;
|
|
pub const HttpRequestTimingTypeTlsAttributesQueryStart = HTTP_REQUEST_TIMING_TYPE.TlsAttributesQueryStart;
|
|
pub const HttpRequestTimingTypeTlsAttributesQueryEnd = HTTP_REQUEST_TIMING_TYPE.TlsAttributesQueryEnd;
|
|
pub const HttpRequestTimingTypeTlsClientCertQueryStart = HTTP_REQUEST_TIMING_TYPE.TlsClientCertQueryStart;
|
|
pub const HttpRequestTimingTypeTlsClientCertQueryEnd = HTTP_REQUEST_TIMING_TYPE.TlsClientCertQueryEnd;
|
|
pub const HttpRequestTimingTypeHttp2StreamStart = HTTP_REQUEST_TIMING_TYPE.Http2StreamStart;
|
|
pub const HttpRequestTimingTypeHttp2HeaderDecodeStart = HTTP_REQUEST_TIMING_TYPE.Http2HeaderDecodeStart;
|
|
pub const HttpRequestTimingTypeHttp2HeaderDecodeEnd = HTTP_REQUEST_TIMING_TYPE.Http2HeaderDecodeEnd;
|
|
pub const HttpRequestTimingTypeRequestHeaderParseStart = HTTP_REQUEST_TIMING_TYPE.RequestHeaderParseStart;
|
|
pub const HttpRequestTimingTypeRequestHeaderParseEnd = HTTP_REQUEST_TIMING_TYPE.RequestHeaderParseEnd;
|
|
pub const HttpRequestTimingTypeRequestRoutingStart = HTTP_REQUEST_TIMING_TYPE.RequestRoutingStart;
|
|
pub const HttpRequestTimingTypeRequestRoutingEnd = HTTP_REQUEST_TIMING_TYPE.RequestRoutingEnd;
|
|
pub const HttpRequestTimingTypeRequestQueuedForInspection = HTTP_REQUEST_TIMING_TYPE.RequestQueuedForInspection;
|
|
pub const HttpRequestTimingTypeRequestDeliveredForInspection = HTTP_REQUEST_TIMING_TYPE.RequestDeliveredForInspection;
|
|
pub const HttpRequestTimingTypeRequestReturnedAfterInspection = HTTP_REQUEST_TIMING_TYPE.RequestReturnedAfterInspection;
|
|
pub const HttpRequestTimingTypeRequestQueuedForDelegation = HTTP_REQUEST_TIMING_TYPE.RequestQueuedForDelegation;
|
|
pub const HttpRequestTimingTypeRequestDeliveredForDelegation = HTTP_REQUEST_TIMING_TYPE.RequestDeliveredForDelegation;
|
|
pub const HttpRequestTimingTypeRequestReturnedAfterDelegation = HTTP_REQUEST_TIMING_TYPE.RequestReturnedAfterDelegation;
|
|
pub const HttpRequestTimingTypeRequestQueuedForIO = HTTP_REQUEST_TIMING_TYPE.RequestQueuedForIO;
|
|
pub const HttpRequestTimingTypeRequestDeliveredForIO = HTTP_REQUEST_TIMING_TYPE.RequestDeliveredForIO;
|
|
pub const HttpRequestTimingTypeHttp3StreamStart = HTTP_REQUEST_TIMING_TYPE.Http3StreamStart;
|
|
pub const HttpRequestTimingTypeHttp3HeaderDecodeStart = HTTP_REQUEST_TIMING_TYPE.Http3HeaderDecodeStart;
|
|
pub const HttpRequestTimingTypeHttp3HeaderDecodeEnd = HTTP_REQUEST_TIMING_TYPE.Http3HeaderDecodeEnd;
|
|
pub const HttpRequestTimingTypeMax = HTTP_REQUEST_TIMING_TYPE.Max;
|
|
|
|
pub const HTTP_REQUEST_TIMING_INFO = extern struct {
|
|
RequestTimingCount: u32,
|
|
RequestTiming: [30]u64,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_INFO_TYPE = enum(i32) {
|
|
Auth = 0,
|
|
ChannelBind = 1,
|
|
SslProtocol = 2,
|
|
SslTokenBindingDraft = 3,
|
|
SslTokenBinding = 4,
|
|
RequestTiming = 5,
|
|
TcpInfoV0 = 6,
|
|
RequestSizing = 7,
|
|
QuicStats = 8,
|
|
TcpInfoV1 = 9,
|
|
};
|
|
pub const HttpRequestInfoTypeAuth = HTTP_REQUEST_INFO_TYPE.Auth;
|
|
pub const HttpRequestInfoTypeChannelBind = HTTP_REQUEST_INFO_TYPE.ChannelBind;
|
|
pub const HttpRequestInfoTypeSslProtocol = HTTP_REQUEST_INFO_TYPE.SslProtocol;
|
|
pub const HttpRequestInfoTypeSslTokenBindingDraft = HTTP_REQUEST_INFO_TYPE.SslTokenBindingDraft;
|
|
pub const HttpRequestInfoTypeSslTokenBinding = HTTP_REQUEST_INFO_TYPE.SslTokenBinding;
|
|
pub const HttpRequestInfoTypeRequestTiming = HTTP_REQUEST_INFO_TYPE.RequestTiming;
|
|
pub const HttpRequestInfoTypeTcpInfoV0 = HTTP_REQUEST_INFO_TYPE.TcpInfoV0;
|
|
pub const HttpRequestInfoTypeRequestSizing = HTTP_REQUEST_INFO_TYPE.RequestSizing;
|
|
pub const HttpRequestInfoTypeQuicStats = HTTP_REQUEST_INFO_TYPE.QuicStats;
|
|
pub const HttpRequestInfoTypeTcpInfoV1 = HTTP_REQUEST_INFO_TYPE.TcpInfoV1;
|
|
|
|
pub const HTTP_REQUEST_INFO = extern struct {
|
|
InfoType: HTTP_REQUEST_INFO_TYPE,
|
|
InfoLength: u32,
|
|
pInfo: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_AUTH_INFO = extern struct {
|
|
AuthStatus: HTTP_AUTH_STATUS,
|
|
SecStatus: HRESULT,
|
|
Flags: u32,
|
|
AuthType: HTTP_REQUEST_AUTH_TYPE,
|
|
AccessToken: ?HANDLE,
|
|
ContextAttributes: u32,
|
|
PackedContextLength: u32,
|
|
PackedContextType: u32,
|
|
PackedContext: ?*anyopaque,
|
|
MutualAuthDataLength: u32,
|
|
pMutualAuthData: ?[*]u8,
|
|
PackageNameLength: u16,
|
|
pPackageName: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_V1 = extern struct {
|
|
Flags: u32,
|
|
ConnectionId: u64,
|
|
RequestId: u64,
|
|
UrlContext: u64,
|
|
Version: HTTP_VERSION,
|
|
Verb: HTTP_VERB,
|
|
UnknownVerbLength: u16,
|
|
RawUrlLength: u16,
|
|
pUnknownVerb: ?[*:0]const u8,
|
|
pRawUrl: ?[*:0]const u8,
|
|
CookedUrl: HTTP_COOKED_URL,
|
|
Address: HTTP_TRANSPORT_ADDRESS,
|
|
Headers: HTTP_REQUEST_HEADERS,
|
|
BytesReceived: u64,
|
|
EntityChunkCount: u16,
|
|
pEntityChunks: ?*HTTP_DATA_CHUNK,
|
|
RawConnectionId: u64,
|
|
pSslInfo: ?*HTTP_SSL_INFO,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_V2 = extern struct {
|
|
__AnonymousBase_http_L1861_C35: HTTP_REQUEST_V1,
|
|
RequestInfoCount: u16,
|
|
pRequestInfo: ?*HTTP_REQUEST_INFO,
|
|
};
|
|
|
|
pub const HTTP_RESPONSE_V1 = extern struct {
|
|
Flags: u32,
|
|
Version: HTTP_VERSION,
|
|
StatusCode: u16,
|
|
ReasonLength: u16,
|
|
pReason: ?[*:0]const u8,
|
|
Headers: HTTP_RESPONSE_HEADERS,
|
|
EntityChunkCount: u16,
|
|
pEntityChunks: ?*HTTP_DATA_CHUNK,
|
|
};
|
|
|
|
pub const HTTP_RESPONSE_INFO_TYPE = enum(i32) {
|
|
MultipleKnownHeaders = 0,
|
|
AuthenticationProperty = 1,
|
|
QoSProperty = 2,
|
|
ChannelBind = 3,
|
|
};
|
|
pub const HttpResponseInfoTypeMultipleKnownHeaders = HTTP_RESPONSE_INFO_TYPE.MultipleKnownHeaders;
|
|
pub const HttpResponseInfoTypeAuthenticationProperty = HTTP_RESPONSE_INFO_TYPE.AuthenticationProperty;
|
|
pub const HttpResponseInfoTypeQoSProperty = HTTP_RESPONSE_INFO_TYPE.QoSProperty;
|
|
pub const HttpResponseInfoTypeChannelBind = HTTP_RESPONSE_INFO_TYPE.ChannelBind;
|
|
|
|
pub const HTTP_RESPONSE_INFO = extern struct {
|
|
Type: HTTP_RESPONSE_INFO_TYPE,
|
|
Length: u32,
|
|
pInfo: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_MULTIPLE_KNOWN_HEADERS = extern struct {
|
|
HeaderId: HTTP_HEADER_ID,
|
|
Flags: u32,
|
|
KnownHeaderCount: u16,
|
|
KnownHeaders: ?*HTTP_KNOWN_HEADER,
|
|
};
|
|
|
|
pub const HTTP_RESPONSE_V2 = extern struct {
|
|
__AnonymousBase_http_L2050_C36: HTTP_RESPONSE_V1,
|
|
ResponseInfoCount: u16,
|
|
pResponseInfo: ?*HTTP_RESPONSE_INFO,
|
|
};
|
|
|
|
pub const HTTPAPI_VERSION = extern struct {
|
|
HttpApiMajorVersion: u16,
|
|
HttpApiMinorVersion: u16,
|
|
};
|
|
|
|
pub const HTTP_CACHE_POLICY_TYPE = enum(i32) {
|
|
Nocache = 0,
|
|
UserInvalidates = 1,
|
|
TimeToLive = 2,
|
|
Maximum = 3,
|
|
};
|
|
pub const HttpCachePolicyNocache = HTTP_CACHE_POLICY_TYPE.Nocache;
|
|
pub const HttpCachePolicyUserInvalidates = HTTP_CACHE_POLICY_TYPE.UserInvalidates;
|
|
pub const HttpCachePolicyTimeToLive = HTTP_CACHE_POLICY_TYPE.TimeToLive;
|
|
pub const HttpCachePolicyMaximum = HTTP_CACHE_POLICY_TYPE.Maximum;
|
|
|
|
pub const HTTP_CACHE_POLICY = extern struct {
|
|
Policy: HTTP_CACHE_POLICY_TYPE,
|
|
SecondsToLive: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_ID = enum(i32) {
|
|
IPListenList = 0,
|
|
SSLCertInfo = 1,
|
|
UrlAclInfo = 2,
|
|
Timeout = 3,
|
|
Cache = 4,
|
|
SslSniCertInfo = 5,
|
|
SslCcsCertInfo = 6,
|
|
Setting = 7,
|
|
SslCertInfoEx = 8,
|
|
SslSniCertInfoEx = 9,
|
|
SslCcsCertInfoEx = 10,
|
|
SslScopedCcsCertInfo = 11,
|
|
SslScopedCcsCertInfoEx = 12,
|
|
Max = 13,
|
|
};
|
|
pub const HttpServiceConfigIPListenList = HTTP_SERVICE_CONFIG_ID.IPListenList;
|
|
pub const HttpServiceConfigSSLCertInfo = HTTP_SERVICE_CONFIG_ID.SSLCertInfo;
|
|
pub const HttpServiceConfigUrlAclInfo = HTTP_SERVICE_CONFIG_ID.UrlAclInfo;
|
|
pub const HttpServiceConfigTimeout = HTTP_SERVICE_CONFIG_ID.Timeout;
|
|
pub const HttpServiceConfigCache = HTTP_SERVICE_CONFIG_ID.Cache;
|
|
pub const HttpServiceConfigSslSniCertInfo = HTTP_SERVICE_CONFIG_ID.SslSniCertInfo;
|
|
pub const HttpServiceConfigSslCcsCertInfo = HTTP_SERVICE_CONFIG_ID.SslCcsCertInfo;
|
|
pub const HttpServiceConfigSetting = HTTP_SERVICE_CONFIG_ID.Setting;
|
|
pub const HttpServiceConfigSslCertInfoEx = HTTP_SERVICE_CONFIG_ID.SslCertInfoEx;
|
|
pub const HttpServiceConfigSslSniCertInfoEx = HTTP_SERVICE_CONFIG_ID.SslSniCertInfoEx;
|
|
pub const HttpServiceConfigSslCcsCertInfoEx = HTTP_SERVICE_CONFIG_ID.SslCcsCertInfoEx;
|
|
pub const HttpServiceConfigSslScopedCcsCertInfo = HTTP_SERVICE_CONFIG_ID.SslScopedCcsCertInfo;
|
|
pub const HttpServiceConfigSslScopedCcsCertInfoEx = HTTP_SERVICE_CONFIG_ID.SslScopedCcsCertInfoEx;
|
|
pub const HttpServiceConfigMax = HTTP_SERVICE_CONFIG_ID.Max;
|
|
|
|
pub const HTTP_SERVICE_CONFIG_QUERY_TYPE = enum(i32) {
|
|
Exact = 0,
|
|
Next = 1,
|
|
Max = 2,
|
|
};
|
|
pub const HttpServiceConfigQueryExact = HTTP_SERVICE_CONFIG_QUERY_TYPE.Exact;
|
|
pub const HttpServiceConfigQueryNext = HTTP_SERVICE_CONFIG_QUERY_TYPE.Next;
|
|
pub const HttpServiceConfigQueryMax = HTTP_SERVICE_CONFIG_QUERY_TYPE.Max;
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_KEY = extern struct {
|
|
pIpPort: ?*SOCKADDR,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_KEY_EX = extern struct {
|
|
IpPort: SOCKADDR_STORAGE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SNI_KEY = extern struct {
|
|
IpPort: SOCKADDR_STORAGE,
|
|
Host: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_CCS_KEY = extern struct {
|
|
LocalAddress: SOCKADDR_STORAGE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_PARAM = extern struct {
|
|
SslHashLength: u32,
|
|
pSslHash: ?*anyopaque,
|
|
AppId: Guid,
|
|
pSslCertStoreName: ?PWSTR,
|
|
DefaultCertCheckMode: u32,
|
|
DefaultRevocationFreshnessTime: u32,
|
|
DefaultRevocationUrlRetrievalTimeout: u32,
|
|
pDefaultSslCtlIdentifier: ?PWSTR,
|
|
pDefaultSslCtlStoreName: ?PWSTR,
|
|
DefaultFlags: u32,
|
|
};
|
|
|
|
pub const HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = enum(i32) {
|
|
Http2Window = 0,
|
|
Http2SettingsLimits = 1,
|
|
HttpPerformance = 2,
|
|
TlsRestrictions = 3,
|
|
ErrorHeaders = 4,
|
|
TlsSessionTicketKeys = 5,
|
|
Max = 6,
|
|
};
|
|
pub const ExParamTypeHttp2Window = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.Http2Window;
|
|
pub const ExParamTypeHttp2SettingsLimits = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.Http2SettingsLimits;
|
|
pub const ExParamTypeHttpPerformance = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.HttpPerformance;
|
|
pub const ExParamTypeTlsRestrictions = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.TlsRestrictions;
|
|
pub const ExParamTypeErrorHeaders = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.ErrorHeaders;
|
|
pub const ExParamTypeTlsSessionTicketKeys = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.TlsSessionTicketKeys;
|
|
pub const ExParamTypeMax = HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE.Max;
|
|
|
|
pub const HTTP2_WINDOW_SIZE_PARAM = extern struct {
|
|
Http2ReceiveWindowSize: u32,
|
|
};
|
|
|
|
pub const HTTP2_SETTINGS_LIMITS_PARAM = extern struct {
|
|
Http2MaxSettingsPerFrame: u32,
|
|
Http2MaxSettingsPerMinute: u32,
|
|
};
|
|
|
|
pub const HTTP_PERFORMANCE_PARAM_TYPE = enum(i32) {
|
|
SendBufferingFlags = 0,
|
|
AggressiveICW = 1,
|
|
MaxSendBufferSize = 2,
|
|
MaxConcurrentClientStreams = 3,
|
|
MaxReceiveBufferSize = 4,
|
|
DecryptOnSspiThread = 5,
|
|
Max = 6,
|
|
};
|
|
pub const PerformanceParamSendBufferingFlags = HTTP_PERFORMANCE_PARAM_TYPE.SendBufferingFlags;
|
|
pub const PerformanceParamAggressiveICW = HTTP_PERFORMANCE_PARAM_TYPE.AggressiveICW;
|
|
pub const PerformanceParamMaxSendBufferSize = HTTP_PERFORMANCE_PARAM_TYPE.MaxSendBufferSize;
|
|
pub const PerformanceParamMaxConcurrentClientStreams = HTTP_PERFORMANCE_PARAM_TYPE.MaxConcurrentClientStreams;
|
|
pub const PerformanceParamMaxReceiveBufferSize = HTTP_PERFORMANCE_PARAM_TYPE.MaxReceiveBufferSize;
|
|
pub const PerformanceParamDecryptOnSspiThread = HTTP_PERFORMANCE_PARAM_TYPE.DecryptOnSspiThread;
|
|
pub const PerformanceParamMax = HTTP_PERFORMANCE_PARAM_TYPE.Max;
|
|
|
|
pub const HTTP_PERFORMANCE_PARAM = extern struct {
|
|
Type: HTTP_PERFORMANCE_PARAM_TYPE,
|
|
BufferSize: u32,
|
|
Buffer: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_TLS_RESTRICTIONS_PARAM = extern struct {
|
|
RestrictionCount: u32,
|
|
TlsRestrictions: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_ERROR_HEADERS_PARAM = extern struct {
|
|
StatusCode: u16,
|
|
HeaderCount: u16,
|
|
Headers: ?*HTTP_UNKNOWN_HEADER,
|
|
};
|
|
|
|
pub const HTTP_TLS_SESSION_TICKET_KEYS_PARAM = extern struct {
|
|
SessionTicketKeyCount: u32,
|
|
SessionTicketKeys: ?*anyopaque,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_PARAM_EX = extern struct {
|
|
ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE,
|
|
Flags: u64,
|
|
Anonymous: extern union {
|
|
Http2WindowSizeParam: HTTP2_WINDOW_SIZE_PARAM,
|
|
Http2SettingsLimitsParam: HTTP2_SETTINGS_LIMITS_PARAM,
|
|
HttpPerformanceParam: HTTP_PERFORMANCE_PARAM,
|
|
HttpTlsRestrictionsParam: HTTP_TLS_RESTRICTIONS_PARAM,
|
|
HttpErrorHeadersParam: HTTP_ERROR_HEADERS_PARAM,
|
|
HttpTlsSessionTicketKeysParam: HTTP_TLS_SESSION_TICKET_KEYS_PARAM,
|
|
},
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SNI_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_CCS_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SET_EX = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY_EX,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_QUERY = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY,
|
|
dwToken: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SNI_QUERY = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY,
|
|
dwToken: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_CCS_QUERY = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY,
|
|
dwToken: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_QUERY_EX = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY_EX,
|
|
dwToken: u32,
|
|
ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY,
|
|
dwToken: u32,
|
|
ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY,
|
|
dwToken: u32,
|
|
ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM = extern struct {
|
|
AddrLength: u16,
|
|
pAddress: ?*SOCKADDR,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY = extern struct {
|
|
AddrCount: u32,
|
|
AddrList: [1]SOCKADDR_STORAGE,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_URLACL_KEY = extern struct {
|
|
pUrlPrefix: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_URLACL_PARAM = extern struct {
|
|
pStringSecurityDescriptor: ?PWSTR,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_URLACL_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY,
|
|
ParamDesc: HTTP_SERVICE_CONFIG_URLACL_PARAM,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_URLACL_QUERY = extern struct {
|
|
QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE,
|
|
KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY,
|
|
dwToken: u32,
|
|
};
|
|
|
|
pub const HTTP_SERVICE_CONFIG_CACHE_KEY = enum(i32) {
|
|
MaxCacheResponseSize = 0,
|
|
CacheRangeChunkSize = 1,
|
|
};
|
|
pub const MaxCacheResponseSize = HTTP_SERVICE_CONFIG_CACHE_KEY.MaxCacheResponseSize;
|
|
pub const CacheRangeChunkSize = HTTP_SERVICE_CONFIG_CACHE_KEY.CacheRangeChunkSize;
|
|
|
|
pub const HTTP_SERVICE_CONFIG_CACHE_SET = extern struct {
|
|
KeyDesc: HTTP_SERVICE_CONFIG_CACHE_KEY,
|
|
ParamDesc: u32,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_PROPERTY = enum(i32) {
|
|
Isb = 0,
|
|
TcpInfoV0 = 1,
|
|
QuicStats = 2,
|
|
TcpInfoV1 = 3,
|
|
Sni = 4,
|
|
StreamError = 5,
|
|
WskApiTimings = 6,
|
|
QuicApiTimings = 7,
|
|
};
|
|
pub const HttpRequestPropertyIsb = HTTP_REQUEST_PROPERTY.Isb;
|
|
pub const HttpRequestPropertyTcpInfoV0 = HTTP_REQUEST_PROPERTY.TcpInfoV0;
|
|
pub const HttpRequestPropertyQuicStats = HTTP_REQUEST_PROPERTY.QuicStats;
|
|
pub const HttpRequestPropertyTcpInfoV1 = HTTP_REQUEST_PROPERTY.TcpInfoV1;
|
|
pub const HttpRequestPropertySni = HTTP_REQUEST_PROPERTY.Sni;
|
|
pub const HttpRequestPropertyStreamError = HTTP_REQUEST_PROPERTY.StreamError;
|
|
pub const HttpRequestPropertyWskApiTimings = HTTP_REQUEST_PROPERTY.WskApiTimings;
|
|
pub const HttpRequestPropertyQuicApiTimings = HTTP_REQUEST_PROPERTY.QuicApiTimings;
|
|
|
|
pub const HTTP_QUERY_REQUEST_QUALIFIER_TCP = extern struct {
|
|
Freshness: u64,
|
|
};
|
|
|
|
pub const HTTP_QUERY_REQUEST_QUALIFIER_QUIC = extern struct {
|
|
Freshness: u64,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_PROPERTY_SNI = extern struct {
|
|
Hostname: [256]u16,
|
|
Flags: u32,
|
|
};
|
|
|
|
pub const HTTP_REQUEST_PROPERTY_STREAM_ERROR = extern struct {
|
|
ErrorCode: u32,
|
|
};
|
|
|
|
pub const HTTP_WSK_API_TIMINGS = extern struct {
|
|
ConnectCount: u64,
|
|
ConnectSum: u64,
|
|
DisconnectCount: u64,
|
|
DisconnectSum: u64,
|
|
SendCount: u64,
|
|
SendSum: u64,
|
|
ReceiveCount: u64,
|
|
ReceiveSum: u64,
|
|
ReleaseCount: u64,
|
|
ReleaseSum: u64,
|
|
ControlSocketCount: u64,
|
|
ControlSocketSum: u64,
|
|
};
|
|
|
|
pub const HTTP_QUIC_STREAM_API_TIMINGS = extern struct {
|
|
OpenCount: u64,
|
|
OpenSum: u64,
|
|
CloseCount: u64,
|
|
CloseSum: u64,
|
|
StartCount: u64,
|
|
StartSum: u64,
|
|
ShutdownCount: u64,
|
|
ShutdownSum: u64,
|
|
SendCount: u64,
|
|
SendSum: u64,
|
|
ReceiveSetEnabledCount: u64,
|
|
ReceiveSetEnabledSum: u64,
|
|
GetParamCount: u64,
|
|
GetParamSum: u64,
|
|
SetParamCount: u64,
|
|
SetParamSum: u64,
|
|
SetCallbackHandlerCount: u64,
|
|
SetCallbackHandlerSum: u64,
|
|
};
|
|
|
|
pub const HTTP_QUIC_CONNECTION_API_TIMINGS = extern struct {
|
|
OpenTime: u64,
|
|
CloseTime: u64,
|
|
StartTime: u64,
|
|
ShutdownTime: u64,
|
|
SecConfigCreateTime: u64,
|
|
SecConfigDeleteTime: u64,
|
|
GetParamCount: u64,
|
|
GetParamSum: u64,
|
|
SetParamCount: u64,
|
|
SetParamSum: u64,
|
|
SetCallbackHandlerCount: u64,
|
|
SetCallbackHandlerSum: u64,
|
|
ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS,
|
|
};
|
|
|
|
pub const HTTP_QUIC_API_TIMINGS = extern struct {
|
|
ConnectionTimings: HTTP_QUIC_CONNECTION_API_TIMINGS,
|
|
StreamTimings: HTTP_QUIC_STREAM_API_TIMINGS,
|
|
};
|
|
|
|
pub const HTTP_FEATURE_ID = enum(i32) {
|
|
Unknown = 0,
|
|
ResponseTrailers = 1,
|
|
ApiTimings = 2,
|
|
DelegateEx = 3,
|
|
Http3 = 4,
|
|
max = -1,
|
|
};
|
|
pub const HttpFeatureUnknown = HTTP_FEATURE_ID.Unknown;
|
|
pub const HttpFeatureResponseTrailers = HTTP_FEATURE_ID.ResponseTrailers;
|
|
pub const HttpFeatureApiTimings = HTTP_FEATURE_ID.ApiTimings;
|
|
pub const HttpFeatureDelegateEx = HTTP_FEATURE_ID.DelegateEx;
|
|
pub const HttpFeatureHttp3 = HTTP_FEATURE_ID.Http3;
|
|
pub const HttpFeaturemax = HTTP_FEATURE_ID.max;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (43)
|
|
//--------------------------------------------------------------------------------
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpInitialize(
|
|
Version: HTTPAPI_VERSION,
|
|
Flags: HTTP_INITIALIZE,
|
|
pReserved: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpTerminate(
|
|
Flags: HTTP_INITIALIZE,
|
|
pReserved: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCreateHttpHandle(
|
|
RequestQueueHandle: ?*?HANDLE,
|
|
Reserved: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCreateRequestQueue(
|
|
Version: HTTPAPI_VERSION,
|
|
Name: ?[*:0]const u16,
|
|
SecurityAttributes: ?*SECURITY_ATTRIBUTES,
|
|
Flags: u32,
|
|
RequestQueueHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCloseRequestQueue(
|
|
RequestQueueHandle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpSetRequestQueueProperty(
|
|
RequestQueueHandle: ?HANDLE,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
Reserved1: u32,
|
|
Reserved2: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpQueryRequestQueueProperty(
|
|
RequestQueueHandle: ?HANDLE,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
Reserved1: u32,
|
|
ReturnLength: ?*u32,
|
|
Reserved2: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "httpapi" fn HttpSetRequestProperty(
|
|
RequestQueueHandle: ?HANDLE,
|
|
Id: u64,
|
|
PropertyId: HTTP_REQUEST_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
Input: ?*anyopaque,
|
|
InputPropertySize: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpShutdownRequestQueue(
|
|
RequestQueueHandle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpReceiveClientCertificate(
|
|
RequestQueueHandle: ?HANDLE,
|
|
ConnectionId: u64,
|
|
Flags: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
SslClientCertInfo: ?*HTTP_SSL_CLIENT_CERT_INFO,
|
|
SslClientCertInfoSize: u32,
|
|
BytesReceived: ?*u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCreateServerSession(
|
|
Version: HTTPAPI_VERSION,
|
|
ServerSessionId: ?*u64,
|
|
Reserved: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCloseServerSession(
|
|
ServerSessionId: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpQueryServerSessionProperty(
|
|
ServerSessionId: u64,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
ReturnLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpSetServerSessionProperty(
|
|
ServerSessionId: u64,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpAddUrl(
|
|
RequestQueueHandle: ?HANDLE,
|
|
FullyQualifiedUrl: ?[*:0]const u16,
|
|
Reserved: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpRemoveUrl(
|
|
RequestQueueHandle: ?HANDLE,
|
|
FullyQualifiedUrl: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCreateUrlGroup(
|
|
ServerSessionId: u64,
|
|
pUrlGroupId: ?*u64,
|
|
Reserved: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCloseUrlGroup(
|
|
UrlGroupId: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpAddUrlToUrlGroup(
|
|
UrlGroupId: u64,
|
|
pFullyQualifiedUrl: ?[*:0]const u16,
|
|
UrlContext: u64,
|
|
Reserved: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpRemoveUrlFromUrlGroup(
|
|
UrlGroupId: u64,
|
|
pFullyQualifiedUrl: ?[*:0]const u16,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpSetUrlGroupProperty(
|
|
UrlGroupId: u64,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpQueryUrlGroupProperty(
|
|
UrlGroupId: u64,
|
|
Property: HTTP_SERVER_PROPERTY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
PropertyInformation: ?*anyopaque,
|
|
PropertyInformationLength: u32,
|
|
ReturnLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "httpapi" fn HttpPrepareUrl(
|
|
Reserved: ?*anyopaque,
|
|
Flags: u32,
|
|
Url: ?[*:0]const u16,
|
|
PreparedUrl: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpReceiveHttpRequest(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Flags: HTTP_RECEIVE_HTTP_REQUEST_FLAGS,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
RequestBuffer: ?*HTTP_REQUEST_V2,
|
|
RequestBufferLength: u32,
|
|
BytesReturned: ?*u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpReceiveRequestEntityBody(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Flags: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
EntityBuffer: ?*anyopaque,
|
|
EntityBufferLength: u32,
|
|
BytesReturned: ?*u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpSendHttpResponse(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Flags: u32,
|
|
HttpResponse: ?*HTTP_RESPONSE_V2,
|
|
CachePolicy: ?*HTTP_CACHE_POLICY,
|
|
BytesSent: ?*u32,
|
|
Reserved1: ?*anyopaque,
|
|
Reserved2: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
LogData: ?*HTTP_LOG_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpSendResponseEntityBody(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Flags: u32,
|
|
EntityChunkCount: u16,
|
|
EntityChunks: ?[*]HTTP_DATA_CHUNK,
|
|
BytesSent: ?*u32,
|
|
Reserved1: ?*anyopaque,
|
|
Reserved2: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
LogData: ?*HTTP_LOG_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
pub extern "httpapi" fn HttpDeclarePush(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Verb: HTTP_VERB,
|
|
Path: ?[*:0]const u16,
|
|
Query: ?[*:0]const u8,
|
|
Headers: ?*HTTP_REQUEST_HEADERS,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpWaitForDisconnect(
|
|
RequestQueueHandle: ?HANDLE,
|
|
ConnectionId: u64,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "httpapi" fn HttpWaitForDisconnectEx(
|
|
RequestQueueHandle: ?HANDLE,
|
|
ConnectionId: u64,
|
|
Reserved: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpCancelHttpRequest(
|
|
RequestQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpWaitForDemandStart(
|
|
RequestQueueHandle: ?HANDLE,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "httpapi" fn HttpIsFeatureSupported(
|
|
FeatureId: HTTP_FEATURE_ID,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "httpapi" fn HttpDelegateRequestEx(
|
|
RequestQueueHandle: ?HANDLE,
|
|
DelegateQueueHandle: ?HANDLE,
|
|
RequestId: u64,
|
|
DelegateUrlGroupId: u64,
|
|
PropertyInfoSetSize: u32,
|
|
PropertyInfoSet: ?*HTTP_DELEGATE_REQUEST_PROPERTY_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "httpapi" fn HttpFindUrlGroupId(
|
|
FullyQualifiedUrl: ?[*:0]const u16,
|
|
RequestQueueHandle: ?HANDLE,
|
|
UrlGroupId: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpFlushResponseCache(
|
|
RequestQueueHandle: ?HANDLE,
|
|
UrlPrefix: ?[*:0]const u16,
|
|
Flags: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpAddFragmentToCache(
|
|
RequestQueueHandle: ?HANDLE,
|
|
UrlPrefix: ?[*:0]const u16,
|
|
DataChunk: ?*HTTP_DATA_CHUNK,
|
|
CachePolicy: ?*HTTP_CACHE_POLICY,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpReadFragmentFromCache(
|
|
RequestQueueHandle: ?HANDLE,
|
|
UrlPrefix: ?[*:0]const u16,
|
|
ByteRange: ?*HTTP_BYTE_RANGE,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
Buffer: ?*anyopaque,
|
|
BufferLength: u32,
|
|
BytesRead: ?*u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "httpapi" fn HttpSetServiceConfiguration(
|
|
ServiceHandle: ?HANDLE,
|
|
ConfigId: HTTP_SERVICE_CONFIG_ID,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pConfigInformation: ?*anyopaque,
|
|
ConfigInformationLength: u32,
|
|
pOverlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "httpapi" fn HttpUpdateServiceConfiguration(
|
|
Handle: ?HANDLE,
|
|
ConfigId: HTTP_SERVICE_CONFIG_ID,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ConfigInfo: ?*anyopaque,
|
|
ConfigInfoLength: u32,
|
|
Overlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpDeleteServiceConfiguration(
|
|
ServiceHandle: ?HANDLE,
|
|
ConfigId: HTTP_SERVICE_CONFIG_ID,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pConfigInformation: ?*anyopaque,
|
|
ConfigInformationLength: u32,
|
|
pOverlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "httpapi" fn HttpQueryServiceConfiguration(
|
|
ServiceHandle: ?HANDLE,
|
|
ConfigId: HTTP_SERVICE_CONFIG_ID,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pInput: ?*anyopaque,
|
|
InputLength: u32,
|
|
// TODO: what to do with BytesParamIndex 5?
|
|
pOutput: ?*anyopaque,
|
|
OutputLength: u32,
|
|
pReturnLength: ?*u32,
|
|
pOverlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "httpapi" fn HttpGetExtension(
|
|
Version: HTTPAPI_VERSION,
|
|
Extension: u32,
|
|
Buffer: ?*anyopaque,
|
|
BufferSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Unicode Aliases (1)
|
|
//--------------------------------------------------------------------------------
|
|
const thismodule = @This();
|
|
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
|
|
.ansi => struct {
|
|
pub const HTTP_SERVICE_BINDING_ = thismodule.HTTP_SERVICE_BINDING_A;
|
|
},
|
|
.wide => struct {
|
|
pub const HTTP_SERVICE_BINDING_ = thismodule.HTTP_SERVICE_BINDING_W;
|
|
},
|
|
.unspecified => if (@import("builtin").is_test) struct {
|
|
pub const HTTP_SERVICE_BINDING_ = *opaque{};
|
|
} else struct {
|
|
pub const HTTP_SERVICE_BINDING_ = @compileError("'HTTP_SERVICE_BINDING_' requires that UNICODE be set to true or false in the root module");
|
|
},
|
|
};
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Imports (13)
|
|
//--------------------------------------------------------------------------------
|
|
const Guid = @import("../zig.zig").Guid;
|
|
const BOOL = @import("../foundation.zig").BOOL;
|
|
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
|
|
const HANDLE = @import("../foundation.zig").HANDLE;
|
|
const HRESULT = @import("../foundation.zig").HRESULT;
|
|
const OVERLAPPED = @import("../system/io.zig").OVERLAPPED;
|
|
const PSECURITY_DESCRIPTOR = @import("../security.zig").PSECURITY_DESCRIPTOR;
|
|
const PSTR = @import("../foundation.zig").PSTR;
|
|
const PWSTR = @import("../foundation.zig").PWSTR;
|
|
const SECURITY_ATTRIBUTES = @import("../security.zig").SECURITY_ATTRIBUTES;
|
|
const SOCKADDR = @import("../networking/win_sock.zig").SOCKADDR;
|
|
const SOCKADDR_STORAGE = @import("../networking/win_sock.zig").SOCKADDR_STORAGE;
|
|
const ULARGE_INTEGER = @import("../foundation.zig").ULARGE_INTEGER;
|
|
|
|
test {
|
|
@setEvalBranchQuota(
|
|
comptime @import("std").meta.declarations(@This()).len * 3
|
|
);
|
|
|
|
// reference all the pub declarations
|
|
if (!@import("builtin").is_test) return;
|
|
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
|
|
_ = @field(@This(), decl.name);
|
|
}
|
|
}
|