Processing an OS Descriptor request -- Remote Desktop Protocol
Special processing on the client is needed when processing TS_URB_OS_FEATURE_DESCRIPTOR_REQUEST.
The following describes how to get the OS-specific string descriptor.
To retrieve a device's OS string descriptor, send a standard GET_DESCRIPTOR control request to the device.
For details on how to construct GET_DESCRIPTOR control requests, see [USB-SPC2.0] section 9.4 "Standard Device Requests."
The request must have the format shown in the following table.
bmRequestType |
bRequest |
wValue |
wIndex |
wLength |
Data |
---|---|---|---|---|---|
1000 0000B |
GET_DESCRIPTOR |
0x03EE |
0x0000 |
0x12 |
Returned string |
bmRequestType: IN. This 1-byte field is divided into three parts that indicate the data transfer direction, the descriptor type, and the recipient.
To retrieve a USB string descriptor, bmRequestType MUST be set to 10000000B (0x80).
bRequest: IN. This field specifies the request type. It should be set to the standard GET_DESCRIPTOR request code.
wValue: IN. This field is split into two parts for GET_DESCRIPTOR requests.
The high byte contains the descriptor type. To retrieve a string descriptor, set this byte to 0x03.
The low byte contains the descriptor's string index, which indicates where the descriptor is stored in firmware.
To retrieve an OS string descriptor, set this byte to 0xEE.
wIndex: IN. This field specifies the descriptor's language ID. It must be set to 0 for OS string descriptors.
wLength: IN. This field specifies the length of the buffer, in bytes, that is to receive the string descriptor.
The device should respond to values ranging from 0x02-0xFF. wLength should be set to 0x12 for OS string descriptors.
Data: OUT. This field is a pointer to the buffer that will receive the requested descriptor. The format of the descriptor is described in the following table.
For more details on how to send control requests, see [USB-SPC2.0].
If a device does not have a valid string descriptor at 0xEE, it responds with a Stall or Request Error.<4>
If an OS string descriptor request is successful, the device returns the descriptor in the request's Data field.
Version 1.00 of the OS string descriptor has a fixed length of 18 bytes, with a structure as shown in the following table.
This format MUST be used by all OS string descriptors.
Length |
Type |
Signature |
MS Vendor Code |
Pad |
---|---|---|---|---|
0x14 |
0x03 |
MSFT100 |
unsigned byte |
0x00 |
Length: An unsigned byte and MUST be set to 0x14.
Type: An unsigned byte and MUST be set to 0x03.
Signature: A Unicode string and MUST be set to "MSFT100".
MS Vendor Code: An unsigned byte, it will be used to retrieve associated feature descriptors.
Pad: An unsigned byte and MUST be set to 0x00.
When processing the Signature and MS VendorCode fields:
The Signature field contains a Unicode character array that identifies the descriptor as an OS string descriptor
and includes the version number.
For version 1.00, this array must be set to "MSFT100" (0x4D00 0x5300 0x4600 0x5400 0x3100 0x3000 0x3000).The MS VendorCode field is used to retrieve the associated feature descriptors.
This code is used as Requestfield in TS_URB_CONTROL_VENDOR_OR_CLASS_REQUEST section 2.2.9.12.
Because independent hardware vendors can store string descriptors at any index,
there is no guarantee that a string descriptor stored at 0xEE is an OS string descriptor.<5>
Processing an OS Descriptor request -- Remote Desktop Protocol的更多相关文章
- Connect to a Windows PC from Ubuntu via Remote Desktop Connection
http://www.7tutorials.com/connecting-windows-remote-desktop-ubuntu A useful feature of Windows is be ...
- Running a Remote Desktop on a Windows Azure Linux VM (远程桌面到Windows Azure Linux )-摘自网络(试了,没成功 - -!)
A complete click-by-click, step-by-step video of this article is available ...
- 使用ubuntu远程连接windows, Connect to a Windows PC from Ubuntu via Remote Desktop Connection
from: https://www.digitalcitizen.life/connecting-windows-remote-desktop-ubuntu NOTE: This tutorial w ...
- [官网]Prevent a worm by updating Remote Desktop Services (CVE-2019-0708)
Prevent a worm by updating Remote Desktop Services (CVE-2019-0708) ★★★★★ https://blogs.technet.micro ...
- [OS] 修改屏幕分辨率(用Remote Desktop Connection 或者 用工具:Remote Desktop Connection Manager)
用Remote Desktop Connection Remote Desktop Connection Manager
- remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...
- Windows组件:打开MSDTC,恢复Windows TaskBar,查看windows日志,打开Remote Desktop,打开Services,资源监控
一,Win10 打开 MSDTC 1,Win+R 打开运行窗口,输入 dcomcnfg,打开组件服务窗口 2,在组件服务 catalog下找到 Distributed Transaction Coor ...
- Configure Security Settings for Remote Desktop(RDP) Services Connections
catalogue . Configure Server Authentication and Encryption Levels . Configure Network Level Authenti ...
- Remote Desktop File Format
转自:http://engrmosaic.uncc.edu/mosaic-anywhere/remote-desktop-file-format The new Terminal Services c ...
随机推荐
- element-UI 下拉条数多渲染慢
本文地址:https://www.cnblogs.com/veinyin/p/10120398.html 如果渲染为普通下拉框,用户难以找到要选择的那一项,增加模糊搜索功能,可解决渲染缓慢问题,但用户 ...
- ZYNQ. GPIO
GPIO General Purpose I/O ,网上能找到很多关于znyq gpio 的文章. 分类:EMIO .MIO .AXI_GPIO 硬件系统 MIO和EMIO是在zynq核中配置的,MI ...
- Centos6.5下升级Python版本
Cenos6.5升级Python2.6到2.7 1.下载源码包 wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz 2.进行 ...
- 转:存储之直连存储Dell Powervault MD 3000
存储之直连存储DellPowervault MD 3000 存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储 1.封闭系统的存储:封闭系统主要指大型机,AS400等服务器 2.开放系统的存储 ...
- springcloud服务安全连接
Spring Cloud可以增加HTTP Basic认证来增加服务连接的安全性. 1.加入security启动器 在maven配置文件中加入Spring Boot的security启动器. <d ...
- Python学习二|Python的一些疑问
最近写了一点Python代码,作为一个java程序员,面对Python这么便捷的语言不禁有点激动.不过呢,有时候也会遇到一些无法理解的东西. 例如: er = [[1,2,3], [4,5,6], [ ...
- 巧用PHP双$功能兼容线上线下配置文件
2014年2月8日 19:27:05 情景: 开发过程中线上和线下的配置文件中的值是不一样的 例如:线上生产环境的样式域名为ie.style.abc.com,而开发环境为ie.style.abc.ne ...
- Android安全系列之:如何在native层保存关键信息
相信大家在日常开发中都要安全层面的需求,最典型的莫过于加密.而apk是脆弱的,反编译拿到你的源码轻而易举,这时候我们就需要更保险的手段来保存密钥之类的关键信息.本文就细致地讲解简单却实用的native ...
- 【LOJ】#2111. 「JLOI2015」战争调度
题解 记录一个数组dp[i][S][k]表示第i个点,它上面所有的点的状态(参军或者后勤)可以用状态S来表示,一共有k个平民参军的最大收益,当然数组开不下,可以用vector动态开 我们对于每个平民枚 ...
- ERROR 2003 (HY000): Can't connect to MySQL server on "192.168.xxx.xxx" (111)
mac homebrew 安装的mysql5.6 除本机外无法被其他ip的电脑访问. 网上查原因 有几个: 1.my.cnf配置中 查看是否有 bind-address = 127.0.0.1 ...