HttpSetServiceConfiguration function

The HttpSetServiceConfiguration function creates and sets a configuration record for the HTTP Server API configuration store. The call fails if the specified record already exists. To change a given configuration record, delete it and then recreate it with a different value.

Syntax

HTTPAPI_LINKAGE ULONG HttpSetServiceConfiguration(
  IN HANDLE                 ServiceHandle,
  IN HTTP_SERVICE_CONFIG_ID ConfigId,
  IN PVOID                  pConfigInformation,
  IN ULONG                  ConfigInformationLength,
  IN LPOVERLAPPED           pOverlapped
);

Parameters

ServiceHandle

Reserved. Must be zero.

ConfigId

Type of configuration record to be set. This parameter can be one of the following values from the HTTP_SERVICE_CONFIG_ID enumeration.

ConfigId value Meaning
HttpServiceConfigIPListenList
Sets a record in the IP Listen List.
HttpServiceConfigSSLCertInfo
Sets a specified SSL certificate record.
HttpServiceConfigUrlAclInfo
Sets a URL reservation record.
HttpServiceConfigTimeout
Sets a specified HTTP Server API wide connection time-out.

Windows Vista and later:  This enumeration value is supported.

HttpServiceConfigSslSniCertInfo
Sets a specified SSL Server Name Indication (SNI) certificate record.

Windows 8 and later:  This enumeration value is supported.

HttpServiceConfigSslCcsCertInfo
Sets the SSL certificate record that specifies that Http.sys should consult the Centralized Certificate Store (CCS) store to find certificates if the port receives a Transport Layer Security (TLS) handshake. The port is specified by the KeyDesc member of the HTTP_SERVICE_CONFIG_SSL_CCS_SET structure that you pass to the pConfigInformation parameter.

Windows 8 and later:  This enumeration value is supported.

pConfigInformation

A pointer to a buffer that contains the appropriate data to specify the type of record to be set.

ConfigId value Meaning
HttpServiceConfigIPListenList

HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM structure.

HttpServiceConfigSSLCertInfo

HTTP_SERVICE_CONFIG_SSL_SET structure.

HttpServiceConfigUrlAclInfo

HTTP_SERVICE_CONFIG_URLACL_SET structure.

HttpServiceConfigTimeout

HTTP_SERVICE_CONFIG_TIMEOUT_SET structure.

Windows Vista and later:  This structure is supported.

HttpServiceConfigSslSniCertInfo

HTTP_SERVICE_CONFIG_SSL_SNI_SET structure. The hostname will be "*" when the SSL central certificate store is queried and wildcard bindings are used, and a host name for regular SNI.

Windows 8 and later:  This structure is supported.

HttpServiceConfigSslCcsCertInfo

HTTP_SERVICE_CONFIG_SSL_CCS_SET structure.

Windows 8 and later:  This structure is supported.

ConfigInformationLength

Size, in bytes, of the pConfigInformation buffer.

pOverlapped

This parameter is reserved and must be NULL.

Return Value

If the function succeeds, the return value is NO_ERROR.

If the function fails, the return value is one of the following error codes.

Value Meaning
ERROR_ALREADY_EXISTS
The specified record already exists, and must be deleted in order for its value to be re-set.
ERROR_INSUFFICIENT_BUFFER
The buffer size specified in the ConfigInformationLength parameter is insufficient.
ERROR_INVALID_HANDLE
The ServiceHandle parameter is invalid.
ERROR_INVALID_PARAMETER
One or more of the supplied parameters is in an unusable form.
ERROR_NO_SUCH_LOGON_SESSION
The SSL Certificate used is invalid. This can occur only if the HttpServiceConfigSSLCertInfo parameter is used.
Other
A system error code defined in WinError.h.

Remarks

The configuration parameters set with HttpSetServiceConfiguration are applied to all the HTTP Server API applications on the machine, and persist when the HTTP Server API shuts down, or when the computer is restarted.

Requirements

   
Windows version Windows XP with SP2 [desktop apps only] Windows Server 2003 [desktop apps only]
Target Platform Windows
Header http.h
Library Httpapi.lib
DLL Httpapi.dll

See Also

HTTP Server API Version 1.0 Functions

HttpDeleteServiceConfiguration

HttpQueryServiceConfiguration

HttpUpdateServiceConfiguration