QOSCreateHandle 函数 (qos2.h)
此函数初始化 QOS 子系统和 QOSHandle 参数。 调用其他 QOS 函数时,将使用 QOSHandle 参数。 必须在任何其他函数之前调用 QOSCreateHandle。
QOSCloseHandle 关闭此函数创建的句柄。
语法
ExternC BOOL QOSCreateHandle(
[in] PQOS_VERSION Version,
[out] PHANDLE QOSHandle
);
参数
[in] Version
指向 QOS_VERSION 结构的指针,该结构指示正在使用的 QOS 版本。 MajorVersion 成员必须设置为 1,MinorVersion 成员必须设置为 0。
[out] QOSHandle
指向接收 QOS 句柄的变量的指针。 调用其他 QOS 函数时使用此句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,返回值为 0。 要获得更多的错误信息,请调用 GetLastError。 一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
内部逻辑错误。 初始化失败。 例如,如果主机进入睡眠或待机模式,则所有现有句柄和流都无效。 |
|
QOSHandle 参数无效。 |
|
指示内存分配失败。 |
|
资源不足,无法执行该操作。 |
|
服务所需的资源不可用。 如果用户尚未为 qWAVE 服务启用防火墙异常,可能会返回此错误。 |
|
此服务的一个依赖项不可用。 无法启动 qWAVE 服务。 |
注解
每个打算使用 qWAVE 的进程都必须首先调用 QOSCreateHandle。 返回的句柄可用于执行重叠的 I/O。 例如,此句柄可以与 I/O 完成端口相关联, (IOCP) 接收重叠的完成通知。 尽管单个句柄足以满足大多数应用程序的需求,但可以多次调用此函数以获取多个句柄。
如果计算机进入中断连接(如睡眠或待机)的省电模式,则必须重新初始化现有的和活动网络试验,例如 QOSStartTrackingClient 。 流的这种重新创建反映了现有套接字也需要的清理和创建活动。 必须创建新句柄,并且必须重新创建流并重新输入。
示例
以下代码演示了函数的使用和所需的参数初始化。 实际值因 QoS 版本而异。
必须包含 Winsock.h 才能使用 WSAGetLastError 函数。
有关完整示例代码列表,请参阅Windows SDK。 SDK 文件夹:Samples\NetDs\GQos\Qos2
QOS_VERSION Version;
HANDLE QoSHandle = NULL;
BOOL QoSResult = FALSE;
// Initialize the QoS version parameter.
Version.MajorVersion = 1;
Version.MinorVersion = 0;
// Get a handle to the QoS subsystem.
QoSResult = QOSCreateHandle(
&Version,
&QoSHandle );
if (QoSResult != TRUE)
{
std::cerr << "QOSCreateHandle failed. Error: ";
std::cerr << WSAGetLastError() << std::endl;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | qos2.h (包括 Qos2.h) |
Library | Qwave.lib |
DLL | Qwave.dll |