WSCInstallQOSTemplate 函数 (ws2spi.h)
[ Windows Vista 和操作系统的后续版本不支持此函数。]
WSCInstallQOSTemplate 函数在系统配置数据库中安装指定的 QoS 模板。
语法
int WSCInstallQOSTemplate(
[in] const LPGUID Guid,
[in] LPWSABUF QosName,
[in] LPQOS Qos
);
参数
[in] Guid
(QoS) 提供程序服务质量的全局唯一标识符 (GUID) 。
[in] QosName
指向 WSABUF 结构的指针,该结构包含要安装的模板的 QoS 名称。
[in] Qos
指向 QOS 结构的指针,该结构指定 QoS 模板的服务质量流规范和任何特定于提供程序的信息。
返回值
如果 WSCInstallQOSTemplate 函数成功,则返回值为零。 否则,它将返回以下错误代码之一。
错误代码 | 含义 |
---|---|
一个或多个参数不在用户地址空间的有效部分中。 | |
一个或多个参数无效。 如果 Guid 参数中指定的 QoS 提供程序无效或在 QosName 参数中指定的 QoS 模板名称无效,则返回此错误。 如果 Qos 参数中指定的模板结构的内容无效或不完整,也会返回此错误。 | |
无法为缓冲区分配内存。 | |
发生不可恢复的错误。 此错误在以下几种情况下返回:提供程序已安装、用户缺少写入 Winsock 注册表所需的管理权限,或者在创建或安装目录条目时失败。 | |
不应失败的系统调用失败。 | |
可用内存不足。 如果内存不足,无法分配新的目录条目,则返回此错误。 |
注解
Windows Vista 及更高版本不支持 WSCInstallQOSTemplate 函数。 如果在 Windows Vista 上调用此函数,则返回错误。
WSCInstallQOSTemplate 函数基于 QoS 名称安装 QoS 模板。 WSCInstallQOSTemplate 函数的调用方必须具有适当的管理权限才能使调用成功。
以后可以通过调用 WSPGetQOSByName 函数并传入关联的 QoS 名称来检索包含 QoS 设置的 QOS 结构。
WSCInstallQOSTemplate 函数安装包含 的命名 QoS 模板
Qos 参数中指定的 QOS 结构。 如果 QoS 模板已存在 Qosname 参数中指定的 QoS 名称,则 Qos 参数中指定的设置将替换现有模板的设置。
如果 Guid 参数设置为 NULL,则已安装的 QOS 模板将应用于所有服务提供程序。 如果 Guid 参数不为 NULL,则安装的 QoS 模板仅适用于 Guid 参数指示的提供程序。
QoS 模板设置存储在非易失性存储中,因此对 WSAGetQOSByName 函数的后续调用与 lpQOSName 参数中指定的 QoS 名称相同的调用将返回传递给 WSCInstallQOSTemplate 函数的相同 QOS 结构。
Windows 套接字 2 包括一组基本 QoS 模板。 只需使用现有名称安装新模板,即可替代和替换其中任何 QoS 模板或更改现有 QoS 模板。 在替换或修改现有模板之前,无需删除它。 无法删除 Windows 套接字 2 中包含的 QoS 命名模板的基础集。 但是,可以删除随后添加的模板(可能由其他服务提供商添加)。
Qos 参数指向一个 QOS 结构,该结构可以包含一个缓冲区,该缓冲区包含 QOS 结构的 ProviderSpecific 成员中的特定于提供程序的设置。 任何特定于提供程序的设置都与基本 QOS 结构一起存储,并在对 WSAGetQOSByName 函数的后续调用中返回。
即使 Guid 参数设置为 NULL,也可以设置 QOS 结构的 ProviderSpecific 成员,以便为所有服务提供商安装全局 QoS 模板。 请注意,如果服务提供商无法识别其内容,这种做法可能会导致服务提供商忽略 QOS 结构的 ProviderSpecific 成员。 WSCInstallQOSTemplate 函数的建议用法是仅在特定服务提供程序上安装命名模板时,将提供程序特定的设置包含在 QOS 结构的 ProviderSpecific 成员中, (Guid 参数不为 NULL) 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ws2spi.h |