Platform SDK: Quality of Service |
The WSAGetQOSByName function initializes a QOS structure based on a named template, or retrieves an enumeration of the available template names.
BOOL WSAAPI WSAGetQOSByName ( SOCKET s, LPWSABUF lpQOSName, LPQOS lpQOS );
If WSAGetQOSByName succeeds, the return value is TRUE. If the function fails, the return value is FALSE. For extended error information, call WSAGetLastError.
The algorithm that WSAGetQOSByName applies in its search for a template's name match is:
Applications can use WSAGetQOSByName to initialize a QOS structure with a prescribed set of known values appropriate for a particular service class or media type. These known values are stored in a template, and the template is referenced by a well-known name. For example, if the service provider's DLL is named Ipphone.dll, the template can be referenced by the name IPPHONE. Applications can retrieve these values by setting the buf member of WSABUF, indicated by lpQOSName, to point to a string of nonzero length specifying a template name. When doing so, lpQOSName is an [in] parameter only, and results are returned through lpQOS.
This function can also be used to retrieve an enumeration of available template names. This is done by setting the buf member of WSABUF, indicated by lpQOSName, to a zero-length, null-terminated string. The buffer indicated by buf is then overwritten with a sequence of as many null-terminated template names as are available—up to the number of bytes available in buf, as provided by the len member of WSABUF. The list of names itself is terminated by a zero-length name. When WSAGetQOSByName is used to retrieve template names, the lpQOS parameter is ignored.
If two templates have the same name, with one template being specific to the service provider and the other being global, they will appear in the list only once.
Error Code | Meaning |
---|---|
WSANOTINITIALIZED | A successful call to WSAStartup must occur before using this function. |
WSAENETDOWN | The network subsystem has failed. |
WSAENOTSOCK | The descriptor is not a socket. |
WSAEFAULT | The lpQOSName or lpQOS parameter is not a valid part of the user address space. |
WSAENOBUFS | The buffer length for lpQOS is too small. |
WSA_NODATA | The specified QOS template name is invalid. |
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 98.
Header: Declared in Winsock2.h.
Library: Use Ws2_32.lib.