Edit

Share via


HTTP_REQUEST_PROPERTY enumeration (http.h)

The HTTP_REQUEST_PROPERTY enumeration defines the properties that you can configured to be queried or set by the HTTP Server API on a request.

Syntax

typedef enum _HTTP_REQUEST_PROPERTY {
  HttpRequestPropertyIsb,
  HttpRequestPropertyTcpInfoV0,
  HttpRequestPropertyQuicStats,
  HttpRequestPropertyTcpInfoV1,
  HttpRequestPropertySni,
  HttpRequestPropertyStreamError,
  HttpRequestPropertyWskApiTimings,
  HttpRequestPropertyQuicApiTimings,
  HttpRequestPropertyQuicStatsV2,
  HttpRequestPropertyQuicStreamStats,
  HttpRequestPropertyTcpInfoV2,
  HttpRequestPropertyTlsClientHello,
  HttpRequestPropertyTransportIdleConnectionTimeout,
  HttpRequestPropertyDscpTag,
  HttpRequestPropertyTlsCipherInfo
} HTTP_REQUEST_PROPERTY, *PHTTP_REQUEST_PROPERTY;

Constants

 
HttpRequestPropertyIsb
Action: Query.
PVOID Input/Output value: ULONG64

Retrieve the ideal send backlog size for a request (see SIO_WSK_QUERY_IDEAL_SEND_BACKLOG).
HttpRequestPropertyTcpInfoV0
Action: Query.
PVOID Input/Output value: TCP_INFO_v0

Retrieve the TCP_INFO_v0 statistics for a request. Uses the Qualifier parameter.
HttpRequestPropertyQuicStats
Action: Query.
PVOID Input/Output value: QUIC_STATISTICS

Retrieve the QUIC_STATISTICS statistics for a request. Uses the Qualifier parameter.
HttpRequestPropertyTcpInfoV1
Action: Query.
PVOID Input/Output value: TCP_INFO_v1

Retrieve the TCP_INFO_v1 statistics for a request. Uses the Qualifier parameter.
HttpRequestPropertySni
Action: Query.
PVOID Input/Output value: HTTP_REQUEST_PROPERTY_SNI

Retrieve the Server Name Indication for the request's TLS connection, in a HTTP_REQUEST_PROPERTY_SNI.
HttpRequestPropertyStreamError
Action: Set.
PVOID Input/Output value: HTTP_REQUEST_PROPERTY_STREAM_ERROR

Set an (HTTP/2 or HTTP/3) HTTP_REQUEST_PROPERTY_STREAM_ERROR struct on a request. The HTTP_REQUEST_PROPERTY_STREAM_ERROR structure contains the configuration data for this property.
HttpRequestPropertyWskApiTimings
Action: Query.
PVOID Input/Output value: HTTP_WSK_API_TIMINGS

Retrieve the HTTP_WSK_API_TIMINGS statistics for a request. Only used for non-QUIC requests (HTTP/1.1, HTTP/2). This property requires additional configuration to enable its use; see Remarks.
HttpRequestPropertyQuicApiTimings
Action: Query.
PVOID Input/Output value: HTTP_QUIC_API_TIMINGS

Retrieve the HTTP_QUIC_API_TIMINGS statistics for a request. Used only for HTTP/3 requests. This property requires additional configuration to enable its use; see Remarks.
HttpRequestPropertyQuicStatsV2
Action: Query.
PVOID Input/Output value: QUIC_STATISTICS_V2

Retrieve the QUIC_STATISTICS_V2 statistics for a request. Uses the Qualifier parameter.
HttpRequestPropertyQuicStreamStats
Action: Query.
PVOID Input/Output value: QUIC_STREAM_STATISTICS

Retrieve the QUIC_STREAM_STATISTICS statistics for a request.
HttpRequestPropertyTcpInfoV2
Action: Query.
PVOID Input/Output value: TCP_INFO_v2

Retrieve extended TCP_INFO_v2 statistics for a request. Uses the Qualifier parameter.
HttpRequestPropertyTlsClientHello
Action: Query.
PVOID Input/Output value: BYTE[]

Retrieve the contents of the TLS Client Hello message sent by the client at the start of the connection for that request. This property requires additional configuration to enable its use; see Remarks.
HttpRequestPropertyTransportIdleConnectionTimeout
Action: Set.
PVOID Input/Output value: USHORT

Set a timeout in seconds for if this request goes idle.
HttpRequestPropertyDscpTag
Action: Set.
PVOID Input/Output value: BYTE

Set the differentiated services code point (DSCP) tag to the supplied BYTE value on all packets sent in the response to this request. This is a 6-bit value internally, so the maximum value is 0x3F.
HttpRequestPropertyTlsCipherInfo
Action: Query.
PVOID Input/Output value: SecPkgContext_CipherInfo

Retrieve the cipher suite and parameters selected for this connection in the TLS handshake.

Remarks

The HTTP_REQUEST_PROPERTY enumeration types are used to set or query the configurations on a request. A member of this enumeration together with the associated configuration structure is used by HttpSetRequestProperty to define the configuration parameters.

HttpRequestPropertyWskApiTimings and HttpRequestPropertyQuicApiTimings. These properties require the HKLM\System\CurrentControlSet\Services\Http\Parameters:EnableExtendedEvents registry value to be set to 0x1 before starting or restarting the HTTP service.

HttpRequestPropertyTlsClientHello. To confirm the availability of this feature, call HttpIsFeatureSupported and pass HttpFeatureCacheTlsClientHello. Because caching the TLS Client Hello is expensive per-connection, to enable this feature you'll need to call HttpSetServiceConfiguration with an HTTP_SERVICE_CONFIG_SSL_SET struct in pConfigInformation with HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CACHE_CLIENT_HELLO set (see HTTP_SERVICE_CONFIG_SSL_PARAM). Since a TLS Client Hello doesn't have a fixed length, this property can be queried with a NULL buffer pointer to determine the size of a buffer you need; see the example in HttpQueryRequestProperty for details.

Requirements

Requirement Value
Header http.h

See also

HttpSetRequestProperty