以原子方式更新服务配置参数,该参数在 HTTP 服务器 API 配置存储中的配置记录中指定传输层安全性 (TLS) 证书。
Syntax
HTTPAPI_LINKAGE ULONG HttpUpdateServiceConfiguration(
[in] HANDLE Handle,
[in] HTTP_SERVICE_CONFIG_ID ConfigId,
[in] PVOID ConfigInfo,
[in] ULONG ConfigInfoLength,
[in] LPOVERLAPPED Overlapped
);
参数
[in] Handle
保留且必须为 NULL。
[in] ConfigId
要更新的配置记录的类型。 此参数可以是 HTTP_SERVICE_CONFIG_ID 枚举中的以下值之一。
| ConfigId 值 | Meaning |
|---|---|
|
更新指定的 SSL 证书记录。 |
|
更新指定的 SSL 服务器名称指示(SNI)证书记录。 |
|
更新 SSL 证书记录,该记录指定 Http.sys 应咨询集中式证书存储(CCS)存储,以在端口收到 TLS 握手时查找证书。 端口由传递给 pConfigInfo 参数的 HTTP_SERVICE_CONFIG_SSL_CCS_SET 结构的 KeyDesc 成员指定。 |
[in] ConfigInfo
指向包含适当数据的缓冲区的指针,用于指定要更新的记录类型。 下表显示了缓冲区为 ConfigId 参数的不同可能值所包含的数据类型。
| ConfigId 值 | pConfigInfo 缓冲区中的数据类型 |
|---|---|
|
|
|
HTTP_SERVICE_CONFIG_SSL_SNI_SET 结构。 查询 SSL 中央证书存储并使用通配符绑定以及常规 SNI 的主机名时,主机名将为“*”。 |
|
HTTP_SERVICE_CONFIG_SSL_CCS_SET 结构。 此结构用于在指定端口上添加 CCS 存储,以及删除、检索或更新现有 SSL CCS 记录。 |
[in] ConfigInfoLength
ConfigInfo 缓冲区的大小(以字节为单位)。
[in] Overlapped
保留且必须为 NULL。
返回值
如果函数成功,则返回值 ERROR_SUCCESS。
如果函数失败,则返回值为以下错误代码之一。
| 价值 | Meaning |
|---|---|
|
指定的记录不存在。 |
|
ConfigInfoLength 参数中指定的缓冲区大小不足。 |
|
ServiceHandle 参数无效。 |
|
提供的一个或多个参数采用不可用的形式。 |
|
使用的 SSL 证书无效。 仅当使用 HttpServiceConfigSSLCertInfo 参数时,才会发生这种情况。 |
|
WinError.h 中定义的 系统错误代码 。 |
注解
使用 HttpUpdateServiceConfiguration 更新的配置参数将应用于计算机上的所有 HTTP 服务器 API 应用程序,并在 HTTP 服务器 API 关闭或计算机重启时保留。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 10 版本 1703 [仅限桌面应用] |
| 支持的最低服务器 | 无受支持的版本 |
| 目标平台 | Windows操作系统 |
| Header | http.h |
| Library | Httpapi.lib |
| DLL | Httpapi.dll |
另请参阅
HTTP_SERVICE_CONFIG_SSL_CCS_SET
HTTP_SERVICE_CONFIG_SSL_SNI_SET