Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
HttpRequestPropertyIsbAction: Query. PVOID Input/Output value: ULONG64 Retrieve the ideal send backlog size for a request (see SIO_WSK_QUERY_IDEAL_SEND_BACKLOG). |
HttpRequestPropertyTcpInfoV0Action: Query. PVOID Input/Output value: TCP_INFO_v0 Retrieve the TCP_INFO_v0 statistics for a request. Uses the Qualifier parameter. |
HttpRequestPropertyQuicStatsAction: Query. PVOID Input/Output value: QUIC_STATISTICS Retrieve the QUIC_STATISTICS statistics for a request. Uses the Qualifier parameter. |
HttpRequestPropertyTcpInfoV1Action: Query. PVOID Input/Output value: TCP_INFO_v1 Retrieve the TCP_INFO_v1 statistics for a request. Uses the Qualifier parameter. |
HttpRequestPropertySniAction: 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. |
HttpRequestPropertyStreamErrorAction: 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. |
HttpRequestPropertyWskApiTimingsAction: 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. |
HttpRequestPropertyQuicApiTimingsAction: 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. |
HttpRequestPropertyQuicStatsV2Action: Query. PVOID Input/Output value: QUIC_STATISTICS_V2 Retrieve the QUIC_STATISTICS_V2 statistics for a request. Uses the Qualifier parameter. |
HttpRequestPropertyQuicStreamStatsAction: Query. PVOID Input/Output value: QUIC_STREAM_STATISTICS Retrieve the QUIC_STREAM_STATISTICS statistics for a request. |
HttpRequestPropertyTcpInfoV2Action: Query. PVOID Input/Output value: TCP_INFO_v2 Retrieve extended TCP_INFO_v2 statistics for a request. Uses the Qualifier parameter. |
HttpRequestPropertyTlsClientHelloAction: 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. |
HttpRequestPropertyTransportIdleConnectionTimeoutAction: Set. PVOID Input/Output value: USHORT Set a timeout in seconds for if this request goes idle. |
HttpRequestPropertyDscpTagAction: 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. |
HttpRequestPropertyTlsCipherInfoAction: 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 |